用熊猫将 3 列合并为 1

时间:2021-02-03 20:20:04

标签: pandas

我有一个包含 5 列的 txt 文件,我需要将第 1、2、3 列合并在一起;和 4 和 5. 合并的项目应该用 : 分隔。我是编码新手,所以将不胜感激任何帮助 像这样

a1  111111  333333  A   D
b1  222222  444444  B   E
c1  333333  555555  C   F


a1:111111:333333    A:D
b1:222222:444444    B:E
c1:333333:555555    C:F

我想它可以用熊猫来完成,但问题是我的文件中的列没有标题
谢谢!

1 个答案:

答案 0 :(得分:0)

Pandas 中,DataFrame 必须具有列名。 假设您的源 DataFrame(带有列名)包含:

   C1      C2      C3 C4 C5
0  a1  111111  333333  A  D
1  b1  222222  444444  B  E
2  c1  333333  555555  C  F

要生成预期结果,您可以例如:

  1. 定义一个应用于每一行的函数:

    def newRec(row):
        return pd.Series([f'{row.C1}:{row.C2}:{row.C3}', f'{row.C4}:{row.C5}'],
            index=['C1', 'C2'])
    

    请注意,使用 f-string 并嵌入对个人的引用 列允许您不关心每列的类型。

  2. 应用此功能:

    result = df.apply(newRec, axis=1)
    

结果是:

                 C1   C2
0  a1:111111:333333  A:D
1  b1:222222:444444  B:E
2  c1:333333:555555  C:F