![](/img/trans.png)
[英]How can I speed up this python script to read and process a csv file?
[英]python: how can I read and process a 18GB csv file?
我有一個來自測量的18GB csv文件,想要基於它進行一些計算。 我試圖用熊貓來做,但似乎要永久地讀這個文件。
以下代碼是我所做的:
df=pd.read_csv('/Users/gaoyingqiang/Desktop/D989_Leistung.csv',usecols=[1,2],sep=';',encoding='gbk',iterator=True,chunksize=1000000)
df=pd.concat(df,ignore_index=True)
U1=df['Kanal 1-1 [V]']
I1=df['Kanal 1-2 [V]']
c=[]
for num in range(0,16333660,333340):
lu=sum(U1[num:num+333340]*U1[num:num+333340])/333340
li=sum(I1[num:num+333340]*I1[num:num+333340])/333340
lui=sum(I1[num:num+333340]*U1[num:num+333340])/333340
c.append(180*mt.acos(2*lui/mt.sqrt(4*lu*li))/np.pi)
lu=0
li=0
lui=0
phase=pd.DataFrame(c)
phase.to_excel('/Users/gaoyingqiang/Desktop/Phaseverschiebung_1.xlsx',sheet_name='Sheet1')
無論如何,有什么可以加快這一進程的嗎?
df
是TextFileReader
,而不是DataFrame
,因此需要concat
:
df = pd.concat(df, ignore_index=True)
樣品 :
import pandas as pd
from pandas.compat import StringIO
temp=u"""id,col1,col2,col3
1,13,15,14
1,13,15,14
1,12,15,13
2,18,15,13
2,18,15,13
2,18,15,13
2,18,15,13
2,18,15,13
2,18,15,13
3,14,15,13
3,14,15,13
3,14,185,213"""
df = pd.read_csv(StringIO(temp), chunksize=3)
print (df)
<pandas.io.parsers.TextFileReader object at 0x000000000D6E2EF0>
df = pd.concat(df, ignore_index=True)
print (df)
id col1 col2 col3
0 1 13 15 14
1 1 13 15 14
2 1 12 15 13
3 2 18 15 13
4 2 18 15 13
5 2 18 15 13
6 2 18 15 13
7 2 18 15 13
8 2 18 15 13
9 3 14 15 13
10 3 14 15 13
11 3 14 185 213
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.