gpt4 book ai didi

python - 在 Pandas 数据框中将日期转换为一年中的某一天

转载 作者:行者123 更新时间:2023-12-05 05:45:11 26 4
gpt4 key购买 nike

在数据框 df1 中,如何将 q1,....q9,q0,...d5 天转换为年中的天数?

YYYY,MM,q1,q2,q3,q4,q5,q6,q7,q8,q9,q0,d1,d2,d3,d4,d5
1975,01,2,11,12,26,25,10,29,21,30,22,8,7,14,4,13
1975,02,27,22,8,20,6,26,21,4,19,9,10,1,11,12,23
1975,03,8,7,21,22,25,9,4,30,2,19,10,11,28,12,27
1975,04,29,28,27,17,19,2,30,16,18,3,9,10,11,8,13

我试过的是

from datetime import datetime
day_of_year = datetime.now().timetuple().tm_yday

但它不起作用。请帮忙。

最佳答案

IIUC:

# Flat your dataframe to vectorize datetime operation
out = df.melt(['YYYY', 'MM'], ignore_index=False).astype(str)

# Compute day of year
out['value'] = pd.to_datetime(out['YYYY']+'-'+out['MM']+'-'+out['value']).dt.dayofyear

# Reshape your dataframe as your original
df = out.reset_index().pivot(['index', 'YYYY', 'MM'], 'variable', 'value') \
.droplevel(0).reset_index().rename_axis(columns=None)[df.columns]

输出:

>>> df
YYYY MM q1 q2 q3 q4 q5 q6 q7 q8 q9 q0 d1 d2 d3 d4 d5
0 1975 1 2 11 12 26 25 10 29 21 30 22 8 7 14 4 13
1 1975 2 58 53 39 51 37 57 52 35 50 40 41 32 42 43 54
2 1975 3 67 66 80 81 84 68 63 89 61 78 69 70 87 71 86
3 1975 4 119 118 117 107 109 92 120 106 108 93 99 100 101 98 103

关于python - 在 Pandas 数据框中将日期转换为一年中的某一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71428131/

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