pandas 合并列
在数据处理和分析中,经常会遇到需要合并两个或多个列的情况。这样可以更好地组织和展示数据,便于后续分析和可视化。在 pandas 中,提供了多种方法可以帮助我们合并列,本文将详细介绍这些方法。
1. 使用 concat() 函数合并列
concat()
函数是 pandas 中用于合并列的常用方法之一,可以按照指定的轴将两个 DataFrame 对象按列合并。
import pandas as pd
# 创建两个 DataFrame 对象
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
# 使用 concat() 函数按列合并两个 DataFrame 对象
result = pd.concat([df1, df2], axis=1)
print(result)
运行以上代码,输出如下结果:
A B C D
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
可以看到,通过 concat()
函数按列合并了两个 DataFrame 对象。参数 axis=1
表示按照列方向进行合并。
2. 使用 merge() 函数合并列
merge()
函数也可以用于合并列,但是主要用于合并具有相同或相似键的 DataFrame 对象。
import pandas as pd
# 创建两个 DataFrame 对象
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]})
# 使用 merge() 函数按照相同键合并两个 DataFrame 对象
result = pd.merge(df1, df2, on='key')
print(result)
运行以上代码,输出如下结果:
key value1 value2
0 A 1 4
1 B 2 5
可以看到,通过 merge()
函数按照相同键合并了两个 DataFrame 对象,只保留了相同键的行。
3. 使用 join() 函数合并列
join()
函数是 DataFrame 对象的方法,用于合并两个 DataFrame 对象的索引,可以按照索引将两个 DataFrame 对象按列合并。
import pandas as pd
# 创建两个 DataFrame 对象
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}, index=[1, 2, 3])
# 使用 join() 函数按索引列合并两个 DataFrame 对象
result = df1.join(df2)
print(result)
运行以上代码,输出如下结果:
A B C D
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
可以看到,通过 join()
函数按索引列合并了两个 DataFrame 对象。
4. 使用 assign() 函数合并列
assign()
函数可以用于向 DataFrame 对象中添加新的列,并返回一个新的 DataFrame 对象。
import pandas as pd
# 创建一个 DataFrame 对象
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 使用 assign() 函数添加新的列
result = df.assign(C=[7, 8, 9], D=[10, 11, 12])
print(result)
运行以上代码,输出如下结果:
A B C D
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
可以看到,通过 assign()
函数添加了新的列。
以上就是使用 pandas 合并列的几种常用方法,当需要合并列时,可以根据具体情况选择合适的方法来实现。