gpt4 book ai didi

Python Panda 数据框 - 从字符串到日期的整行

转载 作者:行者123 更新时间:2023-12-01 08:52:18 24 4
gpt4 key购买 nike

我有一个 csv 文件:

Date,2018-07-31,2018-08-31,2018-09-30
Value,12,34,56

然后将其加载到 DF 中:

df = pd.read_csv('test.csv')

整个第一行日期被视为字符串。如何将第一行(“日期”)中的值更改为 TimeStamp 对象,以便可以使用以下函数:df.columns[0].month

如何使用例如 to_datetime() 选项更改整个第一行?

最佳答案

系列始终按列排列

因此,您无法将设置为 Pandas datetime 系列并在其上无缝使用 Pandas datetime 方法。您可以设计变通办法,将行转换为日期时间系列每次使用时。但这效率低下,并且没有利用矢量化。

可以将行索引或列索引设置为日期时间

datetime 索引:转置数据帧

最干净的解决方案是转置数据帧并使用datetime索引:

from io import StringIO

x = StringIO("""Date,2018-07-31,2018-08-31,2018-09-30
Value,12,23,45""")

df = pd.read_csv(x)
df = df.set_index('Date').T
df.index = pd.to_datetime(df.index)

print(df)

Date Value
2018-07-31 12
2018-08-31 23
2018-09-30 45

print(df.index.month)

Int64Index([7, 8, 9], dtype='int64')

日期时间

如果您需要将列作为datetime,则可以使用set_index,然后使用pd.to_datetime:

df = df.set_index('Date').rename_axis('')
df.columns = pd.to_datetime(df.columns)

print(df)

2018-07-31 2018-08-31 2018-09-30

Value 12 23 45

print(df.columns.month)

Int64Index([7, 8, 9], dtype='int64')

关于Python Panda 数据框 - 从字符串到日期的整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53034562/

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