如果我有这个最小可重复的例子
import pandas as pd
df = pd.DataFrame({"A":[12, 4, 5, None, 1],
"B":[7, 2, 54, 3, None],
"C":[20, 16, 11, 3, 8],
"D":[14, 3, None, 2, 6]})
index_ = ['Row_1', 'Row_2', 'Row_3', 'Row_4', 'Row_5']
df.index = index_
print(df)
# Option 1
result = df[['A', 'D']]
print(result)
# Option 2
result = df.loc[:, ['A', 'D']]
print(result)
字符串
使用loc
或不使用loc
的效果是什么。结果非常相似。我问这个问题是为了准备一个更复杂的问题,其中我被指示使用loc。
4条答案
按热度按时间f8rj6qna1#
不同之处在于
df[['A', 'D']]
是对df
的弱引用(在pandas 2.1.2中)。字符串
在这两种情况下,这不是一个视图:
型
这种行为在pandas版本中有所改变。
这很重要吗
这取决于你想做什么。在大多数情况下,不。
然而,在特定情况下,第一种方法可以触发
SettingWithCopyWarning
:型
vd2z7a6w2#
使用
.loc
在复杂的操作中通常更好,但也是为了清晰。例如:.loc
使代码更具可读性和一致性。mzsu5hc03#
在选择列时,这两个选项是等效的,但第一个选项通常更简洁,通常用于简单的列选择任务。第二个选项使用.loc,当您需要显式指定行和列时,或者当您想要应用更复杂的选择条件时,可能更有用。
yc0p9oo04#
没有效果以上,据我所知. .loc是有用的,当你想选择特定的行.