熊猫中的按行字符串连接

时间:2019-08-15 15:50:08

标签: python pandas

我正在尝试准备一些熊猫数据帧,以输出到(非表格格式)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方法是否有更快的方法来实现相同的输出?

编辑:字符串转换是瓶颈。有什么方法可以利用在使用DataFrame.to_csv时发生的基于C的字符串转换吗?

1 个答案:

答案 0 :(得分:0)

似乎需要更多时间的部分是将浮点数转换为字符串。然后,我的操作方式如下:

demo_input = demo_input.astype(str)
sep = "    "
concatenation = ""
for column in demo_input.columns: # This works fast
    concatenation += demo_input[column] + sep
相关问题