1
df[columns]
和df.loc[:,columns]
之間的區別是什麼,都是左值和右值?訪問pandas.DataFrame列的不同方式
他們似乎是從行爲POV互換:
>>> df = pd.DataFrame({'x':[1,2,3],'y':['a','b','c']})
>>> df[['x']].equals(df.loc[:,['x']])
True
>>> df.loc[:,'z'] = df.x.apply(str) + df.y
>>> df['a'] = df.x.apply(str) + df.y
>>> df
x y z a
0 1 a 1a 1a
1 2 b 2b 2b
2 3 c 3c 3c
我知道有一個文檔中的痛苦細節某處回答這個(我相信我甚至看到過一次,但鏈接將是不錯),但我正在看一個「執行摘要」,可以這麼說。
具體的:是另一種捷徑嗎,還是有語義上的區別?
PS。這是由消息提示
〜/ .virtualenvs /威爾伯/ lib中/ python2.7 /站點包/熊貓/核心/ indexing.py:465:SettingWithCopyWarning: 值要試圖設置來自DataFrame的切片副本。 嘗試使用.loc [row_indexer,col_indexer] =值代替
我不明白你的問題。你想知道引擎蓋下發生了什麼? –
是的 - 比如哪一個應該更快/更便宜/更安全&c – sds
我認爲'ix'過濾更快,但如果您需要100%確定,則需要更多測試 –