Python 复制列并合并?
我有一个数据帧Python 复制列并合并?,python,pandas,merge,duplicates,Python,Pandas,Merge,Duplicates,我有一个数据帧a: ID value1 1 nan 2 nan 3 nan 4 nan 5 nan df1 = pd.concat([b,c]) print (df1) ID value1 0 2 20 1 3 10 0 1 58 1 4 20 df2 = pd.merge(a ,df1, on='ID', how='left', suffixes=('_','')) df2.dro
a
:
ID value1
1 nan
2 nan
3 nan
4 nan
5 nan
df1 = pd.concat([b,c])
print (df1)
ID value1
0 2 20
1 3 10
0 1 58
1 4 20
df2 = pd.merge(a ,df1, on='ID', how='left', suffixes=('_',''))
df2.drop('value1_', axis=1, inplace=True)
print (df2)
ID value1
0 1 58.0
1 2 20.0
2 3 10.0
3 4 20.0
4 5 NaN
然后是另外两个数据帧,b
和c
:
ID value1
2 20
3 10
ID value1
1 58
4 20
当我执行a.merge(b,on='ID').merge(c,on='ID')
时,我会得到重复的值列。我的最终结果包含以下列:
ID value1_x value1_y value1
但我想以以下方式结束:
ID value1
1 58
2 20
3 10
4 20
5 nan
如何使用b
和c
填充a
中的值而不重复列?您可以使用a
中的旧列value1
:
ID value1
1 nan
2 nan
3 nan
4 nan
5 nan
df1 = pd.concat([b,c])
print (df1)
ID value1
0 2 20
1 3 10
0 1 58
1 4 20
df2 = pd.merge(a ,df1, on='ID', how='left', suffixes=('_',''))
df2.drop('value1_', axis=1, inplace=True)
print (df2)
ID value1
0 1 58.0
1 2 20.0
2 3 10.0
3 4 20.0
4 5 NaN
我要更新OP,但假设a
的ID为5-10,在value1
中也是NaN,我想将它们保留为NaN。请参阅更新,解决方案非常相似-只添加了后缀
,用于将添加到第一列,将空字符串添加到第二列。如果我想做同样的事情,但由于数据集中有大量列而删除了许多重复的列,该怎么办?