Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 连接数据帧中的所有列_Python_Pandas_Concat - Fatal编程技术网

Python 连接数据帧中的所有列

Python 连接数据帧中的所有列,python,pandas,concat,Python,Pandas,Concat,我正在尝试连接数据帧的所有列,以便最终得到一列,其中包含数据帧中的所有值。以下代码执行此操作: df2 = pd.concat([df[0], df[1], df[2], df[3], df[4], df[5], df[6], df[7]]) 但我希望能够对具有不同列数的数据帧执行此操作。当我尝试时: dfpr2=pd.concat([df.columns) 我得到以下错误: 无法连接类型为IIUCdf.astype(str.sum)(axis=1)的对象 如果需要自定义分隔符,请使用.agg

我正在尝试连接数据帧的所有列,以便最终得到一列,其中包含数据帧中的所有值。以下代码执行此操作:

df2 = pd.concat([df[0], df[1], df[2], df[3], df[4], df[5], df[6], df[7]])
但我希望能够对具有不同列数的数据帧执行此操作。当我尝试时:

dfpr2=pd.concat([df.columns)

我得到以下错误: 无法连接类型为
IIUC
df.astype(str.sum)(axis=1)的对象

如果需要自定义分隔符,请使用
.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

这是一种连接列值的简单方法

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

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

快速问题:如何将
sum
与定界符结合起来?太棒了,干杯。尽管我感觉
agg
的性能不如
sum
,但MarkWang字符串方法通常都是缓慢,但我同意,agg将比
sum
慢,但我还没有测试过它。通常,您希望对所有列进行压缩,以创建某种代理键,因此,更新表时必须使用它
df1 = df['1st Column Name'] + df['2nd Column Name'] + ...
Timing for different methods : 

%timeit df.iloc[:,0].str.cat(df.iloc[:,1:].astype(str),',')
880 µs ± 28.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit df.astype(str).agg('|'.join,axis=1)
1.45 ms ± 39 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit df.astype(str).sum(axis=1)
562 µs ± 11.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit [','.join(ent) for ent in df.astype(str).to_numpy()]
350 µs ± 6.48 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)