拼命地尝试了7个小时,但还没有想出解决方案。所以我有2个要使用python pandas结合以下条件的数据框:
第一个表示例:
Name
0 Apple
1 Bear
2 Car
3 Dog
第二个表格示例:
Name Number Description
0 Apple 1 I am apple
1 Bear 2 you are bear
2 Dog 4 so are dogs
3 Elephant 5 moo
理想结果:
Name Number Description
0 Apple 1.0 I am apple
1 Bear 2.0 you are bear
2 Car NaN NaN
3 Dog 4.0 so are dogs
4 NaN 5.0 moo
我已经尝试过合并,但是它不起作用(熊猫内部和外部合并的方式都会给出错误的结果)一旦包含更多条件,我将收到很多错误。
我到了这一点(在“ secondtable”中找到了“ firsttable”行的名称)
for a in firsttable['Name']:
for b in secondtable['Name']:
if a == b:
row = pd.DataFrame(secondtable.loc[(secondtable['Name']== b)])
但是之后,我无法将其添加到数据框中。谢谢您的帮助!
使用外部联接,DataFrame.merge
然后通过以下方法对不匹配的值进行设置NaN
(默认值):Series.where
df1['Name']
Series.isin
df = df1.merge(df2, on='Name', how='outer')
df['Name'] = df['Name'].where(df['Name'].isin(df1['Name']))
print (df)
Name Number Description
0 Apple 1.0 I am apple
1 Bear 2.0 you are bear
2 Car NaN NaN
3 Dog 4.0 so are dogs
4 NaN 5.0 moo
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句