连接熊猫数据框中的所有列

时间:2020-05-13 16:53:32

标签: python pandas concat

我试图连接熊猫数据框的所有列,以便最后得到1列,其中包含该数据框的所有值。以下代码可以做到这一点:

df2 = pd.concat([df[0], df[1], df[2], df[3], df[4], df[5], df[6], df[7]])

但是我希望能够对具有不同列数的数据框执行此操作。当我尝试:

dfpr2 = pd.concat([df.columns)

我收到以下错误: “无法连接类型<class 'pandas.core.indexes.range.RangeIndex>的对象;只有Seri​​es和DataFrame objs有效

有没有办法解决这个问题?我尝试设置ignore_index = True,但这似乎也无济于事。谢谢!

3 个答案:

答案 0 :(得分:2)

IIUC df.astype(str).sum(axis=1)

df = pd.DataFrame({'A' : ['A','B','C'],
             'B' : [0,1,2],
             'C' : ['2019-01-10','2020-01-10','2021-01-10']})

df['hash'] = df.astype(str).sum(axis=1)

print(df)

   A  B           C          hash
0  A  0  2019-01-10  A02019-01-10
1  B  1  2020-01-10  B12020-01-10
2  C  2  2021-01-10  C22021-01-10

如果您需要自定义定界符,请使用.agg

df.astype(str).agg('|'.join,axis=1)

0    A|0|2019-01-10
1    B|1|2020-01-10
2    C|2|2021-01-10

答案 1 :(得分:0)

这是连接列值的简单方法

df1 = df['1st Column Name'] + df['2nd Column Name'] + ...

答案 2 :(得分:0)

idb ui describe-all

我认为@ cs95有一个关于字符串的stackoverflow帖子。对于字符串,在Python中完成计算时它们的速度要快得多。