Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 复制列并合并?_Python_Pandas_Merge_Duplicates - Fatal编程技术网

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。请参阅更新,解决方案非常相似-只添加了
后缀
,用于将
添加到第一列,将空字符串添加到第二列。如果我想做同样的事情,但由于数据集中有大量列而删除了许多重复的列,该怎么办?