从数据框中存在的条件中选择列

ast*_*ths 9 python dataframe pandas

我有一个带有多个列的pandas DataFrame(列名称是数字; 1,2,...),如果它们确实存在,我想复制其中的一些.

例如,df1 = df[[1,2,3,4]] 但可能会发生某些列在df中不存在,例如df可能只有列1,2和4或列1和2等

Eri*_*got 19

直接计算公共列的集合并询问它们更简单:

df[df.columns & [1, 2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

&运算符是(集合)交集运算符。)

  • 我收到一条“FutureWarning”,指出此方法从 1.2.4 开始已弃用,应使用“index.intersection(other)”。 (5认同)

EdC*_*ica 12

使用isinwith loc进行过滤,这将处理不存在的列:

In [97]:
df = pd.DataFrame(columns=[1,2,4])
df.loc[:,df.columns.isin([1,2,3,4,])]

Out[97]:
Empty DataFrame
Columns: [1, 2, 4]
Index: []
Run Code Online (Sandbox Code Playgroud)