【发布时间】:2021-08-08 04:14:12
【问题描述】:
我是使用 python 编写函数的新手,希望能在这方面提供一些帮助:
问题陈述:
我有两个数据框 - df1 和 df2。两个数据帧都有一个共享列(我们称之为Name),但数据帧的长度不同。如果名称存在于df2 中,我需要编写一个函数来填充df1 中的值。
>>> df1
Name 1 2 3
A
B
C
D
>>> df2
Name
B
D
在 df1 的第 3 列中输入的值 = YES
New df1
Name 1 2 3
A
B YES
C
D YES
到目前为止我对该功能的尝试:
def fillerfunc(df1, df2, Index_Column, value):
for i, row in df1.iterrows():
df1.iloc[i,Index_Column] = np.select([df1['Name'].isin(df2)], value, np.nan)
希望将其实现为:
df1['3'] = fillmodel(df1, df2, 3, YES)
ValueError: Must have equal len keys and value when setting with an iterable
我了解该错误可能与 df1 & df2 的长度不同。但我认为我的功能在其他方面也是错误的。帮助和指点让我可以学习如何做到这一点会很棒!
谢谢!
【问题讨论】:
标签: python pandas dataframe function for-loop