Python 3.x 如何将丢失的数据从一个数据帧添加到另一个数据帧?
我正在从事一个项目,该项目需要从一张Excel表格到另一张表格填写缺失的数据。例如:Python 3.x 如何将丢失的数据从一个数据帧添加到另一个数据帧?,python-3.x,dataframe,Python 3.x,Dataframe,我正在从事一个项目,该项目需要从一张Excel表格到另一张表格填写缺失的数据。例如: table A: card name address zipcode 123 steve chicago 60601 321 Joy New York 10083 222 Andy San Francisco 43211 table B: card name address zipcode 321 steve nan nan 123 Joy nan
table A:
card name address zipcode
123 steve chicago 60601
321 Joy New York 10083
222 Andy San Francisco 43211
table B:
card name address zipcode
321 steve nan nan
123 Joy nan nan
123 nan nan nan
对于这个项目,我需要根据表A填写表B。我确实有想法使用ExcelVLOOKUP
函数来填写所有列,但我想如果将来数据文件的数量越来越大,那么我可能会使用python来做这件事。(例如,相同的数据格式,但来自不同的分支)
在Python中,merge
函数可以做到这一点,但需要花费太多时间。pandas、numpy或任何其他第三方库中是否有任何有用的函数可以帮助我做到这一点?谢谢大家
以下是我尝试过的:
df.merge(table A, table B, on = 'card', how = 'right')
它确实有效,但我必须重命名列以匹配每个功能。我还知道,我们可以在SQL上快速高效地完成这项工作,只想在python上完成这项工作:)当然,pandas library可以完成这项工作,甚至更多。我目前正在写一个商业智能计划。我用熊猫做了很多类似的手术 有很多方法可以做到这一点,但由于我没有看到您的代码,您可以用最简单、最容易理解的方式来实现。在你被卡住的地方转弯。谢谢
searchdata = Atabledata[['name','adress','zipcode']]
for i in search['name']:
Btabledata.loc[Btabledata['name']== i, Btabledata['adress']] = Atabledata['adress']
Btabledata.loc[Btabledata['name'] == i, Btabledata['zipcode']] = Atabledata['zipcode']
print(Btabledata)
不管你怎么做,你都需要某种唯一的标识符列/列组合来用作索引。@Linden thx对于你的回答,是的,就像数据库一样,在这种情况下,该卡将是唯一标识符。我这样问是因为表B中的卡不是唯一的,而Steve和Joy在表A和表B中有不同的卡。@Linden抱歉我的错误,因为我需要从表A到表B填写数据,那么表B中的卡片123应该用steve的信息填写。表B中有两行卡片123。它们都应该有steve的数据吗?您想用卡片123为表b中的所有行复制表A中的数据吗?以下是我尝试的:df.merge(表A,表b,on=['card']),所以我不完全理解您想要什么。您想在同一张表中执行此操作吗?您必须共享您的完整代码@user14410167,就像我在上下文中提到的一样。我希望将表A中的数据与表B中的数据进行匹配和填写。表包含B未包含的所有信息。在这种情况下,卡应该是不安静的标识符可以帮助我们做这项工作,您的anwser是非常简单的,但我想我们可能有第三个库可以做得更容易?