Pandas DataFrame.index.name is deleted by DataFrame.index.da



我是熊猫的新手,对python也很陌生,所以请耐心等待。问题是:

我从 excel 中读取了一些数据,包括一些日期。我使用这些日期作为索引,它们的形式是 %Y-%m-%d %H:%M:%S .但是我需要这些%Y-%m-%d形式的索引.所以我写了

df.index = df.index.date # where df is a DataFrame object

我发现这之后df.index.name"",但它应该是"Date"的。对我来说,为什么在.date转换后应该更改/删除.name属性似乎很奇怪。我知道我可以简单地将其放回原df.index.name = "Date",但是对于这种行为是否有任何解释,或者它是一个错误。

提前谢谢。

所以看起来你只想格式化输出的日期。因此,我建议将索引保留为DatetimeIndex,然后在编写时格式化它。to_csv()方法有一个 date_format 参数,您可以传递 strftime 字符串。

In [21]: ts = pd.DataFrame(np.random.randn(20, 2), index=pd.DatetimeIndex(start='2014-01-01
', periods=20, freq='min'))

In [23]: ts.to_csv('tst.csv', date_format='%Y-%m-%d')
In [24]: !cat tst.csv
,0,1
2014-01-01,0.23269024172796468,-0.27276285241328363
2014-01-01,-2.1271569576784652,-0.08828528516158064
2014-01-01,-0.7476540707009801,0.4496366704379928
2014-01-01,-1.278025433730537,1.9559942454312738
2014-01-01,-0.5197557973521872,-0.38696497057942586
2014-01-01,1.907212175479462,0.08269395500820262
2014-01-01,-0.002980557062394977,1.649695381207261
2014-01-01,-0.9676320141522591,0.549518266575642
2014-01-01,-1.3499641850605548,-0.11695278340333974
2014-01-01,0.3281427666328896,0.2290718384099928
2014-01-01,0.29854271481529915,-1.606564949527949
2014-01-01,-1.8476324099199142,-1.1062031058677215
2014-01-01,-0.2625937089406767,0.6743539439246344
2014-01-01,0.1901494293074155,2.830381213725509
2014-01-01,-0.16171736635213055,-0.6913561112174935
2014-01-01,-0.6340530961142582,0.1944027320940862
2014-01-01,0.1875828513714546,0.3539781699433568
2014-01-01,1.502398492411021,0.9554844690144768
2014-01-01,0.40825706445611654,-0.6555754482696242
2014-01-01,-1.9870063518613181,0.8300825796678137

看起来to_excel()没有date_format选择。如果您愿意,可以在 Github 上提交问题/功能请求。

最新更新