Python 熊猫:在列标题的顶部添加一行,其中日期基于日期
我有一个DataFrame数据透视表,其中日期作为列标题,如下所示:Python 熊猫:在列标题的顶部添加一行,其中日期基于日期,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,我有一个DataFrame数据透视表,其中日期作为列标题,如下所示: Due Date 2020-01-1 2020-04-12 2020-04-22 2020-05-06 2020-05-1 Customer Aviva 0 0 0 0 1000 Debenhams 0
Due Date 2020-01-1 2020-04-12 2020-04-22 2020-05-06 2020-05-1
Customer
Aviva 0 0 0 0 1000
Debenhams 0 75325 0 0 0
H&M 1204 0 0 0 0
我想在标题下方添加一行,该行的日期与标题日期对应:
Due Date 2020-01-1 2020-04-12 2020-04-22 2020-05-06 2020-05-1
Day Wednesday Sunday Wednesday Wednesday Friday
Customer
Aviva 0 0 0 0 1000
Debenhams 0 75325 0 0 0
H&M 1204 0 0 0 0
我知道我必须在datetime头上调用day_name()方法,我可以这样做,我尝试遍历列并找到这样做的方法,但没有成功
此外,如果不可能做到这一点,那么任何其他想法都是受欢迎的
非常感谢您的帮助。您可以通过以下第二级创建多索引: 如果还需要设置列名称,请使用: 编辑: 如果可能,列中的某些非日期时间值:
df['sum'] = df.sum(axis=1)
df.columns = [df.columns, pd.to_datetime(df.columns, errors='coerce').day_name().fillna('-')]
print (df)
2020-01-1 2020-04-12 2020-04-22 2020-05-06 2020-05-1 sum
Wednesday Sunday Wednesday Wednesday Friday -
Due Date
Aviva 0 0 0 0 1000 1000
Debenhams 0 75325 0 0 0 75325
H&M 1204 0 0 0 0 1204
您可以通过以下第二级创建多索引: 如果还需要设置列名称,请使用: 编辑: 如果可能,列中的某些非日期时间值:
df['sum'] = df.sum(axis=1)
df.columns = [df.columns, pd.to_datetime(df.columns, errors='coerce').day_name().fillna('-')]
print (df)
2020-01-1 2020-04-12 2020-04-22 2020-05-06 2020-05-1 sum
Wednesday Sunday Wednesday Wednesday Friday -
Due Date
Aviva 0 0 0 0 1000 1000
Debenhams 0 75325 0 0 0 75325
H&M 1204 0 0 0 0 1204
啊,那太好了,谢谢你,但是如果我在末尾有一个totals列,它不是datetime,所以不能被解析,那么我怎么能忽略它呢?抱歉忘了在问题中添加它啊,太好了,谢谢你,但是如果我的末尾有一个不是日期时间的总计列,因此无法解析,我怎么能忽略它呢?抱歉,忘了在问题中添加它
df['sum'] = df.sum(axis=1)
df.columns = [df.columns, pd.to_datetime(df.columns, errors='coerce').day_name().fillna('-')]
print (df)
2020-01-1 2020-04-12 2020-04-22 2020-05-06 2020-05-1 sum
Wednesday Sunday Wednesday Wednesday Friday -
Due Date
Aviva 0 0 0 0 1000 1000
Debenhams 0 75325 0 0 0 75325
H&M 1204 0 0 0 0 1204