pandas 如何获得am/pm日期格式?

nc1teljy  于 2022-11-20  发布在  其他
关注(0)|答案(3)|浏览(183)

我有这样的代码:

arr=pd.date_range(start='1/1/2021', end='12/31/2021 23:00:00', freq='h')

df = pd.DataFrame({'year': arr.year})
dg = pd.DataFrame({'month': arr.month})
dh = pd.DataFrame({'day': arr.day})
di = pd.DataFrame({'hour': arr.hour,'minute': arr.minute,'second': arr.second})

我想得到一个csv格式的每小时频率如下:“日、月、年、小时”或“日、月、年、小时”

lztngnrs

lztngnrs1#

我想这可能是你要找的

timevalue_12hour = time.strftime( "%I:%M %p", t )

这会将时间从日期时间24小时格式转换为12小时,%I会将小时从23转换为11,%p会获取AM/PM值。

yx2lnoni

yx2lnoni2#

您可以使用.strftime定义您需要的任何时间格式。请查看此备忘单以了解可能的选项:https://strftime.org/
%I:小时(12小时制),以零填充的十进制数字表示。
%p:相当于AM或PM的区域设置。
要获得所需的格式,可以使用以下命令:

arr.strftime('%d,%m,%Y,%I %p')

输出量:

Index(['01,01,2021,12 AM', '01,01,2021,01 AM', '01,01,2021,02 AM',
       '01,01,2021,03 AM', '01,01,2021,04 AM', '01,01,2021,05 AM',
       '01,01,2021,06 AM', '01,01,2021,07 AM', '01,01,2021,08 AM',
       '01,01,2021,09 AM',
       ...
       '31,12,2021,02 PM', '31,12,2021,03 PM', '31,12,2021,04 PM',
       '31,12,2021,05 PM', '31,12,2021,06 PM', '31,12,2021,07 PM',
       '31,12,2021,08 PM', '31,12,2021,09 PM', '31,12,2021,10 PM',
       '31,12,2021,11 PM'],
      dtype='object', length=8760)

如果你想把它变成一个 Dataframe ,你可以简单地在逗号“”上分割它,然后转换成这样的帧:

df = arr.strftime('%d,%m,%Y,%I %p').str.split(',', expand=True).to_frame(index=False)
df.columns = ['Day', 'Month', 'Year', 'Time']

结果:

Day Month   Year    Time
0   01  01  2021    12 AM
1   01  01  2021    01 AM
2   01  01  2021    02 AM
3   01  01  2021    03 AM
4   01  01  2021    04 AM
... ... ... ... ...
8755    31  12  2021    07 PM
8756    31  12  2021    08 PM
8757    31  12  2021    09 PM
8758    31  12  2021    10 PM
8759    31  12  2021    11 PM
8760 rows × 4 columns
5m1hhzi4

5m1hhzi43#

构造一个新的DataFrame,其中的列作为日期范围内具有不同格式掩码的Map:

df = pd.DataFrame({
    "year": arr.strftime("%Y"),
    "month": arr.strftime("%m"),
    "day": arr.strftime("%d"),
    "hour pm": arr.strftime("%H:%M:%S %p"),
})

而不是保存到.csv

df.to_csv("path/to/file.csv", sep=",", index=False)

相关问题