用另一个df中的行替换pandas df中的行

用另一个df中的行替换pandas df中的行,第1张

用另一个df中的行替换pandas df中的行

下面的代码应该可以解决问题

s1 = pd.Series([5, 1, 'a'])s2 = pd.Series([6, 2, 'b'])s3 = pd.Series([7, 3, 'd'])s4 = pd.Series([8, 4, 'e'])s5 = pd.Series([9, 5, 'f'])df1 = pd.Dataframe([list(s1), list(s2),list(s3),list(s4),list(s5)],  columns =  ["A", "B", "C"])s1 = pd.Series([5, 6, 'p'])s2 = pd.Series([6, 7, 'q'])s3 = pd.Series([7, 8, 'r'])s4 = pd.Series([8, 9, 's'])s5 = pd.Series([9, 10, 't'])df2 = pd.Dataframe([list(s1), list(s2),list(s3),list(s4),list(s5)],  columns =  ["A", "B", "C"])df1.loc[df1.A.isin(df2.A), ['B', 'C']] = df2[['B', 'C']]print df1

输出

   A   B  C0  5   6  p1  6   7  q2  7   8  r3  8   9  s4  9  10  t

编辑评论:

要替换整行而不是仅替换某些列:

cols = list(df1.columns) df1.loc[df1.A.isin(df2.A), cols] = df2[cols]


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5617246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存