【发布时间】: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。 -
我更改了匿名名称。我更新了其他所有内容