将2行连接成1行并将其设置为“列”

问题描述 投票:2回答:1

我遇到了以下问题。我的数据格式很适合人眼,但对于计算机读取来说非常糟糕。例如,它有一个表格格式但没有分隔符,它的标题是自动换行的,这意味着如果它长于特定长度,则其余部分写在一个新行上。

column 1        column 2 but          column 3
                with more text
1.5893001       1.513451              1.198420
1.5893001       1.513451              1.198420
1.5893001       1.513451              1.198420
1.5893001       1.513451              1.198420
etc...

我希望DataFrame中的列具有此标头所具有的文本。我已经因为必须通过手动将数据转换为dict来预处理数据而烦恼。

将此数据加载到DataFrame后,DataFrame的第一行是列标签,其中column2仅部分读取。在第二行中,第一个值(第1列)的值为'',第二个值为'含有更多文本',第三个值为NaN。

我试过df.columns = df.iloc[0] + ' ' + df.iloc[1],这导致第二列有正确的标签,但其他人有nan

有没有办法制作条件表达式?

[编辑] @jezrael正确的格式

{0: {0: 'column 1', 1: '', 2: 1.5893001, 3: 1.5893001}
 1: {0: 'column 2', 1: 'with more text', 2: 1.513451, 3: 1.513451}
 2: {0: 'column 3', 1: None, 2: 1.198420, 3: 1.198420}}
python pandas dataframe
1个回答
1
投票

你可以用qazxsw poi替换misisng值,用qazxsw poi删除尾随空格,然后用Series.fillna删除前两行:

str.strip
© www.soinside.com 2019 - 2024. All rights reserved.