我制定了這個(gè)關(guān)于使用索引添加行的問題,但我還不清楚在沒有索引時(shí)如何/為什么會(huì)發(fā)生這種情況: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)我希望這里有一個(gè) 2X4 數(shù)據(jù)框。盡管如此,沒有添加任何值,也沒有發(fā)生錯(cuò)誤。print(df8.shape)#>>> (0,4)為什么沒有添加系列,為什么沒有給出任何錯(cuò)誤?如果我嘗試使用 LOC 添加一行,則會(huì)添加一個(gè)索引,df8.loc[df8.index.max() + 1, :] = [4, 5, 6,7]print(df8)結(jié)果: A B C DNaN 4 5 6 7我猜LOC和iLOC都不能用來追加沒有索引名的行(即Loc加索引名NaN,索引號(hào)高于數(shù)據(jù)庫行數(shù)時(shí)不能使用iLoc)
2 回答

呼如林
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
DataFrame.append不是就地操作。從文檔中,
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)
將 other 的行附加到此幀的末尾,返回一個(gè)新對象。不在此框架中的列將作為新列添加。
您需要將結(jié)果分配回來。
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

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