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
这是我的最后一列?如何获得所有这些?
答案 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()