我想用一个布尔型索引对DataFrame进行切片,获得一个副本,然后在独立于原始DataFrame的副本上进行操作。将Pandas DataFrame切片到一个新的DataFrame中
从这个answer来看,使用布尔数组将手我回了副本.loc
选择,不过呢,如果我试图改变副本,SettingWithCopyWarning
帮倒忙。这会则是正确的方法:
import numpy as np
import pandas as pd
d1 = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
# create a new dataframe from the sliced copy
d2 = pd.DataFrame(d1.loc[d1.a > 1, :])
# do stuff with d2, keep d1 unchanged
'SettingWithCopyWarning'只是一个警告。它会告诉您,您在该DataFrame上所做的修改不会更改原始DataFrame。您可以完全禁用它们,也可以在分配后使用'd2.is_copy = None'。 – ayhan