【问题标题】:How to Merge Specific Rows from Specific Columns in Python如何在 Python 中合并特定列中的特定行
【发布时间】:2021-02-25 06:41:10
【问题描述】:

如果有更简单的方法,请告诉我。我将一个 .txt 文件读入 Python,但分隔符不一致。我尝试在其他间距技术中使用“t”制表符分隔符间距,但似乎列之间的空格比其他空格多。因此,事情没那么简单。

我加载了数据

df = pd.read_table(data.txt, header = None)

这给了我一个字符串列,然后我使用字符串拆分将数据分成我需要的 8 列。拆分前的数据框:

df = df['col1'].str.split(expand = True)

但是,问题是我的数据框的第一列(名称)由字符串组成。其中一些字符串有两个或三个单独的单词,所以当我使用字符串拆分时,每个字符串都被放入自己的列中。我现在需要将第 1 列、第 2 列和有时第 3 列的选定行合并到同一个单元格中。

当前数据结构:

    a   b   c   d   e   f
0   Bantam  1601    6   3   0   2
1   Malacca Strait  1606    14  11  0
2   Ilha    das Naus    1606    6   9
3   Pulo    Butum   1606    7   9   0
4   Surrat  1615    6   0   4   1.5

从上面的数据框可以看出,字符串夹板最终将名称放入多个列中,其中名称1表示字符串的第一部分,名称2表示第二部分,名称3表示第三部分部分。

我希望数据框看起来像什么:

        a            b      c   d   e   f
0   Bantam          1601    6   3   0   2
1   Malacca Strait  1606    14  11  0
2   Ilha das Naus   1606    6   9
3   Pulo Butum      1606    7   9   0
4   Surrat          1615    6   0   4   1.5

有没有办法合并这些单元格,使我的姓名列包含姓名的所有部分(如有必要,还有 name2 和 name3)?

我研究了连接和合并,但我不知道如何在特定单元格上执行此操作。我还在学习python。感谢您的帮助!

【问题讨论】:

  • 请在拆分之前分享您的数据框样本。
  • @MayankPorwal 刚刚添加!
  • 请同时根据刚刚添加的 df 更新预期输出。此外,请确保编辑列名。目前,您在col1 上进行拆分,而您的主df 中不存在该df
  • 我更改了匿名名称。我更新了其他所有内容

标签: python merge split


【解决方案1】:

我假设您的 data.txt 文件在列之间包含超过 2 个空格。如果是这样,您可以将sep 参数与正则表达式一起使用,如下所示:

import pandas as pd
if __name__ == '__main__':
    df = pd.read_csv('data/data.txt', sep='\s{2,}', header=None, engine="python")
    print(df)

结果:

                0     1   2   3  4      5  6  7
0          Bantam  1601   6   3  0  2.000  0  0
1  Malacca Strait  1606  14  11  0  1.273  0  0
2   Ilha das Naus  1606   6   9  0  0.667  0 -1
3      Pulo Butum  1606   7   9  0  0.778  0  1
4          Surrat  1615   6   0  4  1.500  0  0
5   Ilha das Naus  1615   3   5  0  0.600  0 -1
6            Jask  1620   4   0  4  1.000  0  0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 2018-09-17
    • 2021-11-12
    相关资源
    最近更新 更多