【问题标题】:reorder panda data frame columns vertical重新排列熊猫数据框列垂直
【发布时间】:2019-07-09 01:12:14
【问题描述】:

我对 panda 有点陌生,并且有一些我想重新排序的糖尿病数据。

我想从'wakeup''23:00:00' 列复制数据, 并将这些数据垂直放置,这样我就会得到一个新的数据框列:

5.6  
8.1  
9.9   
6.3  
4.1  
13.3  
NAN  
3.9  
3.3  
6.8  
.....etc

【问题讨论】:

标签: python pandas


【解决方案1】:

我假设数据已经在数据框中。您可以索引您想要的列,然后按照建议使用melt。如果没有任何参数,melt 会将所有数据“堆叠”到新数据框的一列中。创建了另一个列来标识原始列名,但如果需要,您可以删除它。

df.loc[:, 'wakeup':'23:00:00'].melt()
    variable  value
0     wakeup    5.6
1     wakeup    8.1
2     wakeup    9.9
3     wakeup    6.3
4     wakeup    4.1
5     wakeup   13.3
6     wakeup    NAN
7   09:30:00    3.9
8   09:30:00    3.3
9   09:30:00    6.8
...

您提到您希望将其作为另一列,但无法明智地将其添加到您现有的数据框中。形状也可能不匹配。

【讨论】:

  • 你有权认为它确实应该在一个新的数据集中,但请注意,虽然在你的列表中唤醒都在每个下面,但这不是我想要的。
【解决方案2】:

自己解决了最后花了我相当长的时间。 请注意,原始数据位于 df1 结果为 dfAllMeasurements

dfAllMeasurements = df1.loc[:, 'weekday':'23:00:00']
temp = dfAllMeasurements.set_index('weekday','ID').stack(dropna=False) #dropna = keeping NAN 
dfAllMeasurements = temp.reset_index(drop=False, level=0).reset_index()

【讨论】:

    猜你喜欢
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2012-06-19
    相关资源
    最近更新 更多