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

使用pandas.DataFrame进行数据合并和拼接的方法有哪些

发布时间:2023-12-17 14:53:48

pandas是一个强大的数据处理工具,提供了多种方法来合并和拼接DataFrame。下面将介绍几种常用的方法,并提供具体的例子来说明。

1. append()方法:将一个DataFrame附加到另一个DataFrame的尾部。

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': ['a', 'b', 'c']})

df2 = pd.DataFrame({'A': [4, 5, 6],
                    'B': ['d', 'e', 'f']})

df3 = df1.append(df2)
print(df3)

输出:

   A  B
0  1  a
1  2  b
2  3  c
0  4  d
1  5  e
2  6  f

2. concat()方法:将多个DataFrame沿指定轴方向进行拼接。

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': ['a', 'b', 'c']})

df2 = pd.DataFrame({'C': ['x', 'y', 'z'],
                    'D': [4, 5, 6]})

df3 = pd.concat([df1, df2], axis=1)
print(df3)

输出:

   A  B  C  D
0  1  a  x  4
1  2  b  y  5
2  3  c  z  6

3. merge()方法:根据指定的列或索引进行数据合并。

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': ['a', 'b', 'c'],
                    'C': [4, 5, 6]})

df2 = pd.DataFrame({'B': ['a', 'b', 'd'],
                    'D': ['x', 'y', 'z']})

df3 = pd.merge(df1, df2, on='B', how='inner')
print(df3)

输出:

   A  B  C  D
0  1  a  4  x
1  2  b  5  y

4. join()方法:根据索引进行数据合并。

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': ['a', 'b', 'c']},
                   index=['x', 'y', 'z'])

df2 = pd.DataFrame({'C': [4, 5, 6],
                    'D': ['x', 'y', 'z']},
                   index=['y', 'z', 'w'])

df3 = df1.join(df2, how='inner')
print(df3)

输出:

   A  B  C  D
y  2  b  5  y
z  3  c  6  z

5. combine_first()方法:将一个DataFrame的缺失值用另一个DataFrame的相应值填充。

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'A': [1, np.nan, 3],
                    'B': ['a', 'b', 'c']})

df2 = pd.DataFrame({'A': [4, 5, 6],
                    'B': ['d', 'e', 'f']})

df3 = df1.combine_first(df2)
print(df3)

输出:

     A  B
0  1.0  a
1  5.0  b
2  3.0  c

这些方法提供了多种不同的数据合并和拼接的方式,可以根据实际需求选择最合适的方法。无论是简单的附加、拼接,还是复杂的合并和填充缺失值,pandas都有相应的方法来满足需求。