gpt4 book ai didi

python - 合并 pandas 数据透视表多索引头 - 一个时间戳,一个字符串

转载 作者:行者123 更新时间:2023-12-04 17:45:58 27 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

    weatherdate publishdate weathernode value
384 2018-01-30 2018-01-30 CYWG -11.67
385 2018-01-31 2018-01-30 CYWG -15.56
432 2018-01-30 2018-01-30 CYYZ -8.33
433 2018-01-31 2018-01-30 CYYZ -5.00
512 2018-01-31 2018-01-31 CYWG -17.22
560 2018-01-31 2018-01-31 CYYZ -6.67

两个日期列都是 datetime64 格式。我像这样将 df 转换为数据透视表:

dffcst = pd.pivot_table(df, index='weatherdate', columns=['weathernode','publishdate'], values='value') 

然后得到这样的输出:

weathernode   CYWG                        CYYZ
publishdate 2018-01-30 2018-01-31 2018-01-30 2018-01-31
weatherdate
2018-01-30 -11.67 NaN -8.33 NaN
2018-01-31 -15.56 -17.22 -5.00 -6.67

我想合并上面的两行列名,得到我在 excel 中构建的如下所示的输出(注意下面的格式是最好的情况 - 删除年/月/日之间的破折号,否日期和机场代码之间的空格):

weatherdate CYWG20180130 CYWG20180131 CYYZ20180130 CYYZ20180131
1/30/2018 -11.67 NaN -8.33 NaN
1/31/2018 -15.56 -17.22 -5 -6.67

我试过像这样加入他们:

dffcst.columns = [''.join(col) for col in dffcst.columns]

但是我得到以下错误:

TypeError:序列项 1:预期的 str 实例,找到时间戳

所以 pandas 无法将列名第一行中的日期连接到列名第二行中的字符串。

我试过下面的代码:

dffcst.columns = [''.join(str(col)) for col in dffcst.columns]

它有效,但新的列标题有两个对我来说使用起来很笨重,所以我需要一个替代解决方案,就像我在上面的 Excel 中构建的那样。这是笨拙的列标题的示例:

('CYWG', 时间戳('2018-01-30 00:00:00'))

目标是将此表导出到一个 csv 文件,该文件将被拉入 excel 模型。我可以查找具有偏移匹配的 excel 模型,这样我就可以在各种不同的预测日期查找各种气象站。也很高兴听到任何人对此想法的看法。

最佳答案

使用 strftime 将 Timestamp 对象转换为字符串:

dffcst.columns = [c[0] + pd.datetime.strftime(c[1], '%y%m%d') for c in dffcst.columns]

关于python - 合并 pandas 数据透视表多索引头 - 一个时间戳,一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591157/

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