这是数据框。我想要这里的日期为'%Y-%m-%d %H:%M:%S'格式。

import pandas as pd
df2 = pd.DataFrame([['2017-18','','','','','','','','','','','',''], ['COMPANIES', '01-APR-2017', '01-MAY-2017', '01-JUN-2017',
                    '01-JULY-2017', '01-AUG-2017', '01-SEP-2017', '01-OCT-2017', '01-NOV-2017', '01-DEC-2017', '01-JAN-2018', '01-FEB-2018', '01-MAR-2018']])


我试过了,

df2.iloc[1, 1:] = df2.iloc[1, 1:].str.replace("JULY", "JUL")
df2.iloc[1, 1:] = df2.iloc[1, 1:].apply(pd.to_datetime, format = '%d-%b-%Y')


但是,它给出了:

          0                    1                    2                    3   \
0    2017-18
1  COMPANIES  1491004800000000000  1493596800000000000  1496275200000000000

                    4                    5                    6   \
0
1  1498867200000000000  1501545600000000000  1504224000000000000

                    7                    8                    9   \
0
1  1506816000000000000  1509494400000000000  1512086400000000000

                    10                   11                   12
0
1  1514764800000000000  1517443200000000000  1519862400000000000


我想念什么吗?还有其他方法可以按要求的格式显示日期吗?

我什至尝试:

for i in df2.iloc[1, 1:]:
    i = datetime.datetime.fromtimestamp(int(i)).strftime('%Y-%m-%d %H:%M:%S')


但给出一个ValueError: timestamp out of range for platform localtime()/gmtime() function

最佳答案

您可以使用strftime访问.dt

例如:

import pandas as pd
df2 = pd.DataFrame([['2017-18','','','','','','','','','','','',''], ['COMPANIES', '01-APR-2017', '01-MAY-2017', '01-JUN-2017',
                    '01-JULY-2017', '01-AUG-2017', '01-SEP-2017', '01-OCT-2017', '01-NOV-2017', '01-DEC-2017', '01-JAN-2018', '01-FEB-2018', '01-MAR-2018']])


df2.iloc[1, 1:] = df2.iloc[1, 1:].str.replace("JULY", "JUL")
df2.iloc[1, 1:] = df2.iloc[1, 1:].apply(pd.to_datetime, format = '%d-%b-%Y').dt.strftime('%Y-%m-%d %H:%M:%S')

print(df2)


输出:

          0                    1                    2                    3   \
0    2017-18
1  COMPANIES  2017-04-01 00:00:00  2017-05-01 00:00:00  2017-06-01 00:00:00

                    4                    5                    6   \
0
1  2017-07-01 00:00:00  2017-08-01 00:00:00  2017-09-01 00:00:00

                    7                    8                    9   \
0
1  2017-10-01 00:00:00  2017-11-01 00:00:00  2017-12-01 00:00:00

                    10                   11                   12
0
1  2018-01-01 00:00:00  2018-02-01 00:00:00  2018-03-01 00:00:00

关于python - 在 Pandas 数据框中将日期转换为日期时间格式时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50347089/

10-12 12:25
查看更多