python - Pandas 中的逐行字符串连接
问题描述
我正在尝试准备一些 Pandas Dataframes 以输出到(非表格)ascii 文件。作为此过程的一部分,我希望将包含数字数据的某些数据帧的每一行连接到 Pandas 系列的制表符分隔字符串中。
目前,我的代码是这样的:
import pandas as pd
import numpy as np
demo_input = pd.DataFrame(np.random.random((1000000, 10)))
sconcat = lambda a: [' '.join(map(str, r)) for r in a]
demo_output = pd.Series(sconcat(demo_input.values))
对于大量输入,这被证明是非常缓慢的,尤其是与其他 Pandas 进程的运行速度相比。有没有更快的方法来使用内置的 Pandas 方法实现相同的输出?
编辑:这是瓶颈的字符串转换。有没有办法利用使用时发生的基于 C 的字符串转换DataFrame.to_csv
?
解决方案
似乎需要更多时间的部分是将浮点数转换为字符串。之后,我会这样做的方式如下:
demo_input = demo_input.astype(str)
sep = " "
concatenation = ""
for column in demo_input.columns: # This works fast
concatenation += demo_input[column] + sep
推荐阅读
- python - PySpark:编写镶木地板文件时如何指定文件大小?
- c - 如何检查所有数组项是否连续并以值 9 结束
- python - Discord.py 无法禁止获取的用户
- javascript - 如何根据元素是否包含特定类来构造 switch 语句来运行函数?
- javascript - 反应角色给予者 discord.js
- laravel - 如何更新过滤器上的新星指标?
- javascript - 回复错误的结果 console.log javascript split
- javascript - 如何在函数中使用变量作为参数设置条件?
- java - isChecked 无法在 Kotlin 上以编程方式处理复选框
- javascript - 图像对齐问题