python-3.x - 如何在列上应用函数

标签 python-3.x pandas apply

我编写了一个函数来确定工作日。当我尝试将其应用到我的数据框时,遇到以下错误。

data['date'].head() 

0    2016-01-01
1    2016-01-01
2    2016-01-01
3    2016-01-01
4    2016-01-01

def weekday_determination(col):
    year, month, day = (int(x) for x in col.split('-'))
    ans = datetime.date(year, month, day)
    return ans.strftime('%A')

data['week_day'] = data['date'].apply(weekday_determination, axis=1)

我遇到以下错误:

TypeError: weekday_determination() got an unexpected keyword argument 'axis'

最佳答案

这里更好用to_datetimeSeries.dt.day_name :

data['week_day'] = pd.to_datetime(data['date']).dt.day_name()

print (data)
         date week_day
0  2016-01-01   Friday
1  2016-01-01   Friday
2  2016-01-01   Friday
3  2016-01-01   Friday
4  2016-01-01   Friday

在您的解决方案中使用 Series.apply ,所以没有参数axis:

data['date'] = data['date'].apply(weekday_determination)

可能的解决方案为 DataFrame.apply :

data['week_day'] = data.apply(lambda x: weekday_determination(x['date']), axis=1)

关于python-3.x - 如何在列上应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56786572/

相关文章:

Python3 在字节数组中搜索

python - pandas fillna 在列中包含前几行的累加值(每个 nan 后重置)

r - 如何根据R中同一数据框中的值扩展数据框

python - 找到n个有趣的多边形区域

python - 简单语言翻译器

python - 为什么这两个平方根算法的运行方式如此不同,尽管它们应该完全相同?

r - as.factor 不将整数转换为因子

python - 提取行时保留条目的类型(整数或 float )

python - 按 Multiindex 级别 2 上的位置对 pandas 数据帧进行切片

r - 创建一个包含每个文件名列表的第 N 个数字的数据表