gpt4 book ai didi

python - 使用函数调用填充 pandas 数据框中的列

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:15 29 4
gpt4 key购买 nike

如何将 .loc.str.match() 一起使用来更新列值,但使用函数调用?我正在尝试的代码是这样的;

df.loc[df['Col1'].str.match(r'\d\d/\d\d/\d\d\d\d', na=False), 'Col2'] = _my_func(df['Col1'])

用于查找日期格式的简单正则表达式模式,然后是 _myfunc()

def _my_func(data)
for row in data.iteritems():
day = int(row[1][:2])
month = int(row[1][3:5])
year = int(row[1][6:])
fecha = datetime.datetime(year, month, day, 0, 0, 0)
diff = fecha - datetime.datetime.now()
if diff.days > 0:
return 'Yes'
elif diff.days < 0:
return 'No'

这是将函数的值返回到数据框中的正确方法吗?

此外,如果我在 return 之前将 print('test') 插入 _my_func,它只会打印 test 有一次,没有打印传递给函数的数据中的每一行,有人知道为什么吗?谢谢。

最佳答案

根据我的评论:

def _my_func(x):
day = int(x[:2])
month = int(x[3:5])
year = int(x[6:])
fecha = datetime.datetime(year, month, day, 0, 0, 0)
diff = fecha - datetime.datetime.now()
if diff.days > 0:
return 'Yes'
elif diff.days < 0:
return 'No'

其次是:

df.loc[df['Col1'].str.match(r'\d\d/\d\d/\d\d\d\d', na=False), 'Col2'] = df['Col1'].apply(_my_func)

关于python - 使用函数调用填充 pandas 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52590546/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com