我制定了這個關于使用索引添加行的問題,但我還不清楚在沒有索引時如何/為什么會發生這種情況:columnsList=['A','B','C','D']df8=pd.DataFrame(columns=columnsList)L=['value aa','value bb','value cc','value dd']s = pd.Series(dict(zip(df8.columns, L)))df8.append(s,ignore_index=True)df8.append(s,ignore_index=True)我希望這里有一個 2X4 數據框。盡管如此,沒有添加任何值,也沒有發生錯誤。print(df8.shape)#>>> (0,4)為什么沒有添加系列,為什么沒有給出任何錯誤?如果我嘗試使用 LOC 添加一行,則會添加一個索引,df8.loc[df8.index.max() + 1, :] = [4, 5, 6,7]print(df8)結果: A B C DNaN 4 5 6 7我猜LOC和iLOC都不能用來追加沒有索引名的行(即Loc加索引名NaN,索引號高于數據庫行數時不能使用iLoc)
2 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
DataFrame.append不是就地操作。從文檔中,
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)
將 other 的行附加到此幀的末尾,返回一個新對象。不在此框架中的列將作為新列添加。
您需要將結果分配回來。
df8 = df8.append([s] * 2, ignore_index=True)
df8
A B C D
0 value aa value bb value cc value dd
1 value aa value bb value cc value dd

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
語句 data.append(sub_data) 本身不起作用。
但是語句 data=data.append(sub_data) 會起作用
重新分配它為我解決了這個問題。其他地方沒有的好提示。
添加回答
舉報
0/150
提交
取消