欢迎访问宙启技术站
智能推送

pandas.concat方法怎么在Python3中使用

发布时间:2023-05-18 13:15:14

在Python3中,pandas.concat方法是用于将Pandas DataFrame和Series合并,创建一个新的Pandas DataFrame的函数。Pandas.concat方法的语法如下:

pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, sort=False, verify_integrity=False, copy=True)

其中,objs是要合并的数据集,可以是一个DataFrame或Series的列表,axis指定合并的方向,join指定合并方式,ignore_index表示是否重置索引,keys表示合并后新的索引名称,sort表示是否对合并后的数据进行排序,verify_integrity表示是否检查索引的 性,copy表示是否复制对象。下面是使用pandas.concat方法的一些示例:

1. 将两个DataFrame合并为一个

import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2'], 'C': ['C0', 'C1', 'C2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5'], 'C': ['C3', 'C4', 'C5']})
result = pd.concat([df1, df2])
print(result)

输出:

   A   B   C
0  A0  B0  C0
1  A1  B1  C1
2  A2  B2  C2
0  A3  B3  C3
1  A4  B4  C4
2  A5  B5  C5

在这个例子中,将df1和df2两个DataFrame沿着默认的行方向(axis=0)进行合并,并且重新索引。df1和df2的列数相同,且列名称相同,这样能够保证数据合并的正确性。

2. 将两个Series合并为一个新的DataFrame

import pandas as pd
s1 = pd.Series(['A0', 'A1', 'A2'], name='A')
s2 = pd.Series(['B0', 'B1', 'B2'], name='B')
result = pd.concat([s1, s2], axis=1)
print(result)

输出:

    A   B
0  A0  B0
1  A1  B1
2  A2  B2

在这个例子中,将s1和s2两个Series沿着列方向(axis=1)进行合并,并且重新索引。s1和s2索引名称均为数字,因此合并后的新DataFrame的索引名称也是数字。

3. 忽略原来的索引编号,重新生成新的索引

import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2'], 'C': ['C0', 'C1', 'C2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5'], 'C': ['C3', 'C4', 'C5']})
result = pd.concat([df1, df2], ignore_index=True)
print(result)

输出:

   A   B   C
0  A0  B0  C0
1  A1  B1  C1
2  A2  B2  C2
3  A3  B3  C3
4  A4  B4  C4
5  A5  B5  C5

在这个例子中,将两个DataFrame沿着默认的行方向(axis=0)进行合并,并且忽略原来的索引编号,重新生成新的索引号。

4. 使用keys参数给合并后的数据集增加一个多层级索引

import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2'], 'C': ['C0', 'C1', 'C2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5'], 'C': ['C3', 'C4', 'C5']})
result = pd.concat([df1, df2], keys=['df1', 'df2'])
print(result)

输出:

        A   B   C
df1 0  A0  B0  C0
    1  A1  B1  C1
    2  A2  B2  C2
df2 0  A3  B3  C3
    1  A4  B4  C4
    2  A5  B5  C5

在这个例子中,通过keys参数将两个DataFrame合并成一个多层级索引的DataFrame,其中keys的值为df1和df2,表示合并后的子集来自哪个DataFrame。

总的来说,pandas.concat方法是非常实用的数据集合并方法,通过掌握这个方法,我们可以更方便地对Pandas DataFrame和Series进行数据处理和分析。