繁体   English   中英

如何从多索引中获取列?

[英]How can I get columns from Multi-Index?

我有一个名为“keytable”的 dataframe,它具有由“月”、“日”和“小时”组成的多索引。 我想在创建 3 个具有“月”、“日”和“小时”值的新列时保留该多索引。 我该怎么做? 这是 dataframe:

keytable.head()
Out[59]: 
                 pp    pres  rad    rh  ...   ws  WeekDay   Power_kW  Power_kW18
Month Day Hour                          ...                                     
1     3   0     0.0  1027.6  4.1  78.9  ...  0.0        3  77.303046  117.774419
          1     0.0  1027.0  3.3  79.7  ...  0.0        3  72.319602  110.710928
          2     0.0  1027.0  3.3  81.8  ...  0.0        3  71.831852  106.067667
          3     0.0  1027.0  1.9  86.6  ...  0.0        3  69.555751  106.325955
          4     0.0  1027.0  3.8  92.2  ...  0.0        3  69.525780  102.855393

[5 rows x 11 columns]

要创建名为“月”、“日”、“年”的新列,只需new_table=key_table.reset_index() 将索引复制为列是一种非常糟糕的做法,但如果你真的坚持,那么

newdf = new_table[['Year', 'Month', 'Year']].set_index(['Year', 'Month', 'Year']).
new_table.set_index(newdf.index, inplace=True) 

应该管用。

我最终做了一个 reset_index() 并取消了一个 datetime 列,以便我可以重新索引它。

keytable=keytable.reset_index()
keytable['datetime'] = pd.to_datetime(keytable['datahora'].str.replace('/','-'), errors='coerce')
keytable=keytable.set_index('datetime')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM