gpt4 book ai didi

python - 从数据框中的列中获取周数

转载 作者:行者123 更新时间:2023-12-01 07:01:31 26 4
gpt4 key购买 nike

我有以下数据框(df1):

        Year    Month   Day
0 2019 10 28
1 2019 10 28
2 2019 10 28
3 2019 10 28
4 2019 10 28

现在,我想根据前 3 列在数据框中创建一个包含周数的新列。

我尝试过:

    df1['Weeknumber_TillDate'] 
=date(df1['Year'],df1['Month'],df1['Day']).isocalendar()[1]

这给了我错误:

    TypeError: cannot convert the series to <class 'int'>

我尝试了很多其他方法,但错误总是这种类型错误。

当我执行下面的代码时,它确实有效:

   df1 = {'Year':[2019],'Month':[10], 'Day' : [28]}

df1['Weeknumber_TillDate'] =
date(df1['Year'],df1['Month'],df1['Day']).isocalendar()[1]

结果:

     Year   Month   Day Weeknumber_TillDate
2019 10 28 44

我希望能够对我的整个数据框(每一行)执行此操作。

但是我从另一个数据框(df2)获取我的年、月、日。

所以我这样做:

     df1 = {'Year':df2.iloc[:,6],'Month':df2.iloc[:,7], 'Day' : 
df2.iloc[:,8]}

这给了我 df1 和 dtypes 是:

      YearSub                   int64
MonthSub int64
DaySub int64

当我这样做时:

     df1 = {'Year':[2019],'Month':[10], 'Day' : [28]}

2019、10和28也是int64。

所以,我不知道为什么它不起作用。有什么建议么?

最佳答案

尝试以下 1 个衬垫:

import pandas as pd
import datetime

df = pd.DataFrame({"Year": [2019, 2018, 2017, 2017], "Month": [1, 2, 3, 12], "Day": [1, 2, 3, 30]})

df["New"] = df.apply(lambda row: datetime.datetime(row["Year"], row["Month"], row["Day"]).isocalendar()[1], axis=1)

print(df)

希望它有助于解决问题,如有任何疑问,请随时提问。

关于python - 从数据框中的列中获取周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612589/

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