在执行操作时还原列

时间:2019-11-04 03:23:51

标签: python pandas numpy

temp = 
           1             2             3             4             5
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109

temp.info()给了我Columns: 338 entries, 0 to 337

然后我执行以下操作来拆分数据:

df = temp.stack().str.split(' ', expand=True).unstack()

df.info()给了我Columns: 674 entries, (0, 0) to (1, 337)


问题:

0 to 337然后是1, 337

这是我的最后一列?如何获得所有这些?

2 个答案:

答案 0 :(得分:0)

DataFrame df的列设置为MultiIndex。因此,例如,您应该能够使用以下命令访问原始第3列 first 部分中的列:

df.loc[:, (0, 3)]
  • 列(level=0)的外部级别采用0或1的值,它们指示str.split()结果的第一部分或第二部分。 (顺便说一下,str.split()默认在空格上分割,因此您无需指定' '

  • 列的内部(level=1)级别包含值0到337

如果您希望在列中使用单级索引,则可以重命名df的列以指示其来源,如下所示:

df.columns = ['_'.join(map(str, c)) for c in df.columns]

答案 1 :(得分:0)

只需检查temp数据帧中的NaN值即可。您的temp可能具有NaN的值。默认为stack删除NaN。要保留NaN,您需要指定dropna=False。请尝试按照以下步骤查看df.info()是否显示676个条目

df = temp.stack(dropna=False).str.split(expand=True).unstack()
df.info()