【问题标题】:Split pandas df rows into multiple columns将 pandas df 行拆分为多列
【发布时间】:2021-01-18 01:20:40
【问题描述】:

由于文件类型的原因,我有一个需要在 \n 上拆分的 csv。将此 df 分成两个单独的 dfs 后,我剩下的行看起来像这样

27  Block\t"Column"\t"Row"\t"X"\t"Y"\t"Dia."\t"Fla...
28  1\t1\t1\t17834.00\t38902.00\t10.00\t0\t513.27\...
29  1\t2\t1\t17852.00\t38902.00\t10.00\t0\t495.84\...
30  1\t3\t1\t17870.00\t38902.00\t10.00\t0\t525.76\...
31  1\t4\t1\t17888.00\t38902.00\t10.00\t0\t456.27\...

如何从分隔符 \t 创建列?

【问题讨论】:

  • 所以我已经用 .read_csv 读入了文件,但必须在 \n 上进行分隔,然后将数据帧拆分为两个单独的数据帧。我不再有一个 csv 文件,我有一个 df 所以有没有办法做到这一点,而无需将其写入单独的 csv 并在 \t 上重新读取它?

标签: python pandas dataframe multiple-columns


【解决方案1】:

这样的东西可能就是你要找的东西......

df['Block'] = df['Block'].str.split('/t').str[0]
df['Column'] = df['Columnl'].str.split('/t').str[1]

【讨论】:

    【解决方案2】:

    使用以下代码:

    df[['Block','Column', 'Row', 'X', 'Y', etc]] = df['<Column Name>'].str.split(r'\t',expand=True)
    

    etc 替换为其余的列名。打印 df 时将&lt;Column Name&gt; 替换为列名。

    一种更简单的方法可能是将数据帧下载为 csv,然后使用 \t 分隔符重新读取。

    【讨论】:

    • 有没有办法可以直接使用第一行作为列标题而不用重写它们?
    • 您应该能够使用列表推导。我需要尝试一下,然后更新我的答案。一秒
    • 我无法让它工作,所以我用替代方法更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2021-01-24
    • 1970-01-01
    • 2020-08-16
    • 2018-02-25
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    相关资源
    最近更新 更多