Pandas 为什么要设置包含日期的行的格式?
我有一个excel文件,其结构如下Pandas 为什么要设置包含日期的行的格式?,pandas,Pandas,我有一个excel文件,其结构如下 x y z toto 13/12/20 13/12/20 13/12/20 titi 1 2 3 tata 4 5 6 其中,行toto包含日期。当使用pandas.read_excel读取此类数据时,我得到以下数据框: x y
x y z
toto 13/12/20 13/12/20 13/12/20
titi 1 2 3
tata 4 5 6
其中,行toto
包含日期。当使用pandas.read_excel读取此类数据时,我得到以下数据框:
x y z
toto 2020-12-13 00:00:00 2020-12-13 00:00:00 2020-12-13 00:00:00
titi 1 2 3
tata 4 5 6
当保存回excel时,将生成不再被解释为有效日期的单元格。我知道有一种方法可以使用
parse_dates
和date_parser
关键字来读取日期,但这些方法适用于列而不是行。您知道如何让pandas正确地解释这些行吗?同时,也有一种方法可以按照您需要的格式直接读取日期。有一种相当简单的方法可以使用双转置(T,两次)并将日期格式化为您所需的格式:
import pandas as pd
data = {
"x":["2020-12-13 00:00:00",1,4],
"y":["2020-12-13 00:00:00",2,5],
"z":["2020-12-13 00:00:00",3,6]
}
idx = ['toto', 'titi', 'tata']
df = pd.DataFrame(data, index = idx)
print(df)
最终输出:
x y z
toto 13/12/20 13/12/20 13/12/20
titi 1 2 3
tata 4 5 6
很乐意帮忙!。如果这对你有帮助,就把分数看作是“答案”和“投票”。
df1 = df.T
df1['toto'] = pd.to_datetime(df1['toto'], infer_datetime_format=True)
df1['toto'] = df1['toto'].dt.strftime('%d/%m/%y')
df_final = df1.T
print(df_final)
x y z
toto 13/12/20 13/12/20 13/12/20
titi 1 2 3
tata 4 5 6