使用 Pandas 合并函数指定要输出的列
Specify columns to output with Pandas Merge function
import pandas as pd
df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],
'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'rkey': ['dog', 'bar', 'baz', 'foo'],
'value': [5, 6, 7, 8],
'valuea': [9, 10, 11, 12],
'valueb': [13, 14, 15, 16]})
我想合并这两个基于 'value' 的数据帧。但是我不希望结果给我 df2 中的所有列。根据图像中的平方输出,我想保留 'valuea' 列 header 的那个,而不是 'valueb' 列 header 的那个。
我试过的代码是
df1.merge(df2, on ='value')
有没有办法使用合并函数中的参数排除 header = valueb 的列?
您不能在 merge
函数中排除带有参数的列。
试试这些方法:
pd.merge(df1, df2).drop(columns=['valueb'])
pd.merge(df1, df2.drop(columns=['valueb']))
import pandas as pd
df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],
'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'rkey': ['dog', 'bar', 'baz', 'foo'],
'value': [5, 6, 7, 8],
'valuea': [9, 10, 11, 12],
'valueb': [13, 14, 15, 16]})
我想合并这两个基于 'value' 的数据帧。但是我不希望结果给我 df2 中的所有列。根据图像中的平方输出,我想保留 'valuea' 列 header 的那个,而不是 'valueb' 列 header 的那个。
我试过的代码是
df1.merge(df2, on ='value')
有没有办法使用合并函数中的参数排除 header = valueb 的列?
您不能在 merge
函数中排除带有参数的列。
试试这些方法:
pd.merge(df1, df2).drop(columns=['valueb'])
pd.merge(df1, df2.drop(columns=['valueb']))