我需要以下問題幫助多個csv文件。加載和重塑與熊貓
我有多個CSV文件像下面
1.csv
ID Length
1 12
2 23
3 44
3 34
5 11
3 39
7 79
8 45
9 56
0 15
1 35
2 23
3 66
4 33
1 12
7 34
1 21
3 43
6 44
9 55
2.csv
ID Length
1 52.1
2 32.2
3 44.6
3 99.1
5 122.3
3 43.2
7 79.4
8 45.5
9 56.3
0 15.4
1 35.7
2 23.7
3 66.7
4 33.8
1 12.9
7 34.8
1 21.6
3 43.7
6 44.2
9 55.8
我想每個10行重塑列Length
,並把它並排在一個結果旁邊。下面 例如是我想要的輸出
[[12 23 44 34 11] [[ 52.1 32.2 44.6 99.1 122.3]
[39 79 45 56 15]] [ 43.2 79.4 45.5 56.3 15.4]]
[[35 23 66 33 12] [[ 35.7 23.7 66.7 33.8 12.9]
[34 21 43 44 55]] [ 34.8 21.6 43.7 44.2 55.8]]
我用下面的腳本嘗試,但它給了我一個類型的錯誤。
myscript.py
import pandas as pd
import glob
df = [pd.read_csv(filename) for filename in glob.glob("Users/Ling/workspace/testing/*.csv")]
start = 0
for i in range(0, len(df.index)):
if (i + 1)%10 == 0:
result = df['Length'].iloc[start:i+1].reshape(2,5)
start = i + 1
print result
錯誤
TypeError: object of type 'builtin_function_or_method' has no len()
我不理解的錯誤。我應該在start = 0
之後放置另一個For loop
以便程序讀取每個文件,或者有另一種方法可以解決此問題嗎?
謝謝你的幫助。
[UPDATE]
隨着從@cmaher建議,我修改myscript.py是這樣
import pandas as pd
import glob
df = [pd.read_csv(filename) for filename in glob.glob("Users/Ling/workspace/testing/*.csv")]
df = pd.concat(df)
start = 0
for i in range(0, len(df.index)):
if (i + 1)%10 == 0:
result = df['Length'].iloc[start:i+1].reshape(2,5)
start = i + 1
print result
輸出是這樣
[[ 52.1 32.2 44.6 99.1 122.3]
[ 43.2 79.4 45.5 56.3 15.4]]
[[ 35.7 23.7 66.7 33.8 12.9]
[ 34.8 21.6 43.7 44.2 55.8]]
[[ 12. 23. 44. 34. 11.]
[ 39. 79. 45. 56. 15.]]
[[ 35. 23. 66. 33. 12.]
[ 34. 21. 43. 44. 55.]]
其是從什麼不同我期望。我想像我在所需的輸出中提供的那樣並排放置。
它告訴你,'df.index'的是,沒有一個'LEN()'方法的功能。 'df'看起來像什麼? 'df.index'看起來像什麼? – Batman
@Batman最初的劇本其實是這樣的,我加載一個CSV文件只'DF = pd.read_csv(「1.csv」)'。爲了回答你的問題,我認爲'df.index'這裏的意思是1.csv中所有數據的列表。 – Ling
你是否需要它們在交互式shell中對它們進行視覺檢查?還是有更大的理由,你需要他們在這種特定的格式?他們需要成爲一個列表,numpy數組,還是這很重要? – Jarad