我的 csv 檔案格式如下:
NAME: John
AGE: 19
HEIGHT: 178
COURSE; SEMESTER; GRADE; RESULT
MATH;1;10;PASS
BIOLOGY;2;5;FAIL
所以,標題在一些行之后,我可以在閱讀時跳過它,沒有問題,但我希望第一行成為列,這樣我就可以將所有檔案合并到一個資料框中。第一個應該以這種方式出現:
NAME; AGE; HEIGHT; COURSE; SEMESTER; GRADE; RESULT
John; 19; 178;MATH;1;10;PASS
John; 19; 178; BIOLOGY;2;5;FAIL
uj5u.com熱心網友回復:
嗯,這對我來說是一次很好的培訓,所以謝謝你:)
d1 = '''
NAME: John
AGE: 19
HEIGHT: 178
COURSE; SEMESTER; GRADE; RESULT
MATH;1;10;PASS
BIOLOGY;2;5;FAIL
'''
df1 = pd.read_csv(StringIO(d1), sep=':', nrows=3, header=None)
df2 = pd.read_csv(StringIO(d1), sep=';', skiprows=4)
df1 = df1.T #transpose
df1.columns = df1.iloc[0] #make index[0] new header
df1 = df1.drop([0]) #remove old index[0] which is now a duplicate
df3 = pd.concat([df1, df2], axis=1).fillna(method="bfill") #concat and fill NaN
df3
| 指數 | 姓名 | 年齡 | 高度 | 課程 | 學期 | 年級 | 結果 |
|---|---|---|---|---|---|---|---|
| 0 | 約翰 | 19 | 178 | 數學 | 1 | 10 | 經過 |
| 1 | 約翰 | 19 | 178 | 生物學 | 2 | 5 | 失敗 |
注意:也許您應該嘗試更好地廢棄/清理/填充您的 csv?;)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486690.html
