此问题在此处已有答案:
Pandas Merging 101(8个答案)
昨天就关门了。
我有2个excel文件,每个文件包含2列,如下所示:
文件1:
name price
a 1
b 78
f 54
g 32
t 2
字符串
文件2:
name price
f 4
x 23
e 76
a 4
o 0
型
我想读取file1
并搜索file2
name等于file1
name的值并提取价格,然后将它们写入file2
的价格列。file2
应如下所示:
文件2:
name price
f 54
x 23
e 76
a 1
o 0
型
我已经尝试了如下(我已经保存的excel文件为CSV):
import pandas as pd
import numpy as np
df1 = pd.DataFrame(pd.read_csv('file1.csv'))
df2 = pd.DataFrame(pd.read_csv('file2.csv'))
if(df1[name] in df2[name]):
df2[price] = df1[price]
df2.to_csv('file2.csv')
型
2条答案
按热度按时间lpwwtiir1#
你需要先合并:
字符串
然后你可以使用np.,其中:
型
稍后,您可以删除合并的列:
型
这就是结果:
型
w1jd8yoj2#
验证码
使用
combine_first
字符串
看来提问者不知道Pandas的
inplace
,所以我将附上输出结果作为图像。的数据
其他方式:使用
concat
&groupby
+last
型
相同结果
其他方式:
merge
&pop
型
相同结果
示例代码
型