我有以下資料框,我想從中使用索引和列名檢索單元格值。左串列示索引值,而列名從 1 到 5。這是一個虛擬資料框,看起來很小,但今后我將使用此代碼訪問具有 100 多列的資料框,并且不可能知道列名預先。
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| t_1 | 1 | 0 | 0 | 0 | 1 |
| t_2 | 1 | 1 | 0 | 0 | 0 |
| t_3 | 1 | 0 | 0 | 0 | 0 |
| t_4 | 1 | 0 | 1 | 0 | 1 |
要從此資料幀中檢索值,我正在使用itertuples()來回圈熊貓資料幀。請注意,使用iterrows()它可以輕松完成,但速度要慢得多,因此我想避免使用它。這是迭代資料幀的代碼片段:
for row in input_df.itertuples():
print(row.Index)
for col in input_df.columns[1:]:
print(row.col)
由于我事先不知道列名,因此我想從資料框串列中獲取列名,然后使用它來獲取單元格值。例如,第t_11行應回傳 1。但是,使用上面的代碼,我收到以下錯誤:
AttributeError: 'Pandas' object has no attribute 'col'
如果我提到確切的列名而不是col與行,那么我得到的結果沒有任何錯誤。請幫助我理解我在這里做錯了什么來得到這個錯誤。除了iterrows()使用列名獲取單元格值之外,還有其他解決方案嗎?
uj5u.com熱心網友回復:
只需更改row.col為getattr(row, col):
for row in input_df.itertuples():
print(row.Index)
for col in input_df.columns[1:]:
print(getattr(row, col))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357505.html
