Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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 熊猫:用分隔符展平df_Python_Numpy_Pandas - Fatal编程技术网

Python 熊猫:用分隔符展平df

Python 熊猫:用分隔符展平df,python,numpy,pandas,Python,Numpy,Pandas,我的目标是使用stdin管道将数据帧加载到数据库中,以加载在命令行执行的load语句(例如cat{file_loc}|/path/to/sql--command“使用分隔符“,”;”从stdin复制表”)。我知道这种方法是次优的;由于pyodbc问题,这是一种解决方法;) 压缩数据帧的最有效方法是什么,使每一行都是一个字符串,其中包含分隔符分隔的值,并在末尾换行?下面我的解决方案似乎效率低下 from pandas import * import numpy as np df = DataFra

我的目标是使用stdin管道将数据帧加载到数据库中,以加载在命令行执行的load语句(例如cat{file_loc}|/path/to/sql--command“使用分隔符“,”;”从stdin复制表”)。我知道这种方法是次优的;由于pyodbc问题,这是一种解决方法;)

压缩数据帧的最有效方法是什么,使每一行都是一个字符串,其中包含分隔符分隔的值,并在末尾换行?下面我的解决方案似乎效率低下

from pandas import *
import numpy as np
df = DataFrame(np.random.randint(low=0, high=100, size=(5,3)),columns=['A','B','C'])
df2 = df.apply(lambda d: ','.join([`x` for x in d]))
使用df.to_csv()或类似方法写入数据帧太慢

import timeit
m1="""df2=df.apply(lambda d: ','.join([`x` for x in d]))"""
met1t = timeit.Timer(stmt=m1,setup="from pandas import *; import numpy as np; df = DataFrame(np.random.randint(low=0, high=100, size=(5,3)),columns=['A','B','C'])")
print "Method 1: %.2f usec/pass" % (1000000 * met1t.timeit(number=100000)/100000)
# 381.82 usec/pass

m2="""df.to_csv('testout.csv', index=False, header=False)"""
met2t = timeit.Timer(stmt=m2,setup="from pandas import *; import numpy as np; df = DataFrame(np.random.randint(low=0, high=100, size=(5,3)),columns=['A','B','C'])")
print "Method 2:%.2f usec/pass" % (1000000 * met2t.timeit(number=100000)/100000)
# 551.30 usec/pass

你能描述一下pyodbc的问题吗

我在这里制造了一个问题。要获得最佳性能,您需要使用C或Cython,并使用C字符串函数自己构建原始字节字符串。我知道,不是很令人满意。在某种程度上,我们也应该为熊猫建立一个更好的表演平台:


您是否可以发布数据并加快与您正在做的比较?可能是优化到_csv的机会。@zhangse:Updated w/timeit results这是一些特定于在我们的数据库中编写的东西,但我从未弄清楚细节。稍后我将尝试进行更多调查并提供更多细节。