python - 连接 pandas 数据框中的所有列

标签 python pandas concatenation

我正在尝试连接 pandas 数据帧的所有列,以便最终得到包含数据帧中所有值的 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> 类型的对象;只有 Series 和 DataFrame 对象有效

有办法解决这个问题吗?我尝试设置ignore_index = True,但这似乎也没有帮助。谢谢!!

最佳答案

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)

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

关于python - 连接 pandas 数据框中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61780382/

相关文章:

python/django 生成后台进程并避免僵尸进程

python - 如何移动 Pandas 数据框中的列

python - 如何加快pandas数据框中列的匹配速度

python - 以 AM/PM 格式绘制 Pandas Datetime 时间序列

MySQL INTO OUTFILE 查询问题

c# - C# 中的串联

python - 通过在 python 中使用 argparse 从我的模块传递其命令行参数来调用另一个模块

python - altair:在回归中访问 r 平方值

python - 属性错误: 'NoneType' object has no attribute 'lstrip'

javascript,这个函数怎么可能返回一个空数组?