这是我的数据:
{'size_A': {Timestamp('2021-01-01 00:00:00'): 600, Timestamp('2021-01-02 00:00:00'): 930}, 'size_B': {Timestamp('2021-01-01 00:00:00'): 700, Timestamp('2021-01-02 00:00:00'): 460}, 'weight_A': {Timestamp('2021-01-01 00:00:00'): 100, Timestamp('2021-01-02 00:00:00'): 120}, 'weight_B': {Timestamp('2021-01-01 00:00:00'): 150, Timestamp('2021-01-02 00:00:00'): 89}}
我不想把信息放在列中,而想把它放在行中。
df.T
不起作用,因为这样列名中就有日期了。
我想在索引中添加一个带有日期的 Dataframe ,并添加一个名为bacterium的列,我们可以在其中找到名称:
{'bacterium': {Timestamp('2021-01-01 00:00:00'): 'B', Timestamp('2021-01-02 00:00:00'): 'B'}, 'size': {Timestamp('2021-01-01 00:00:00'): 700, Timestamp('2021-01-02 00:00:00'): 700}, 'weight': {Timestamp('2021-01-01 00:00:00'): 150, Timestamp('2021-01-02 00:00:00'): 150}}
如果你想看到一张照片的目的:aim
1条答案
按热度按时间ruarlubt1#
此问题实际上可以通过三个相对简单的步骤来解决:
首先,注意你的列名实际上是在编码一个2x2的MultiIndex,所以让我们从creating a MultiIndex from tuples开始。要做到这一点,我们首先需要将现有的列名转换成元组。这很容易,因为我们知道它们应该在最后一个下划线处拆分。
下一步,使用
df.stack()
从列MultiIndex中获取“bacterium”级别,并将其移动到行MultiIndex中。这与您尝试的转置操作不太相同。最后,使用带有
level
参数的df.reset_index()
从MultiIndex行中获取细菌水平,并将其作为适当的列。结果: