我是使用熊貓查看 csv 的初學者。我正在使用 .iterrows() 來查看給定的記錄是否與今天的日期匹配,到目前為止一切都很好。但是,當為列標題為“名稱”的 .csv 呼叫 (row.name) 時,我得到的輸出與重命名列并編輯 (row."column-heading") 以匹配時不同。我可以稱它為“名稱”以外的任何名稱并獲得正確的輸出。在來這里之前,我嘗試了 (row.notthename) (row.fish) 和 (row.thisisodd) - 一切正常。
如果birthdays.csv 中的第一個列是“name”并且我呼叫 print(row.name) 它回傳“2”。如果第一列是“notthename”并且我呼叫 print(row.notthename) 它回傳相關名稱。是什么賦予了?我不明白為什么任意重命名列并且函式呼叫會產生不同的輸出?
例如案例 A:名為“名稱”的列
birthdays.csv:
name,email,year,month,day
a test name,[email protected],1961,12,21
testerito,[email protected],1985,02,23
testeroonie,[email protected],2022,01,17
data = pandas.read_csv("birthdays.csv")
for (index, row) in data.iterrows():
if (dt.datetime.now()).month == row.month and (dt.datetime.now()).day == row.day:
print(row.name)
輸出“2”
而案例 B:名為“notthename”的列
data = pandas.read_csv("birthdays.csv")
for (index, row) in data.iterrows():
if (dt.datetime.now()).month == row.month and (dt.datetime.now()).day == row.day:
print(row.notthename)
輸出“testeroonie”
我錯過了一些東西....是否對“名稱”進行了一些特殊處理?
謝謝你幫助我學習!
uj5u.com熱心網友回復:
發生這種情況是因為DataFrame.iterrows回傳一個Series物件,并且該Series物件有一個名為 的內置屬性name。這就是為什么使用列名的物件快捷方式雖然方便,但可能很危險。字典符號沒有這個問題:
print(row['name'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412587.html
標籤:
