0

我是数据框和 Python 的新手。我有一个现有的 16 列数据框。我有一个我想要的列列表(这会改变,因此列名将在列表中)。我可以使用列表和原始数据框创建新数据框吗?

这是我尝试过的:

df = df.select([c for c in df.columns 
                    if c not in columns])
    return df

错误信息:

TypeError:“列表”对象不可调用

4

2 回答 2

0

正如对您问题的评论中已经建议的那样,您可以使用列表来分割数据框。

columns = ... # your list of columns to exclude
df_result = df_init.loc[:, [c for c in df_init if c not in columns]].copy()

添加.copy()似乎是一种很好的做法——否则,一旦你改变了你的df_result,那个改变就会流向df_init.

于 2019-09-30T21:31:00.990 回答
0

您可以使用“重新索引”方法:

df=pd.DataFrame({f"col{i}": i  for i in range(6)}, index=list(range(6)) ) # test data

df:
   col0  col1  col2  col3  col4  col5
0     0     1     2     3     4     5
1     0     1     2     3     4     5
2     0     1     2     3     4     5
3     0     1     2     3     4     5
4     0     1     2     3     4     5
5     0     1     2     3     4     5

reqcols=["col1","col5","col0"]                                                                                      
df2= df.reindex(reqcols,axis="columns")                                                                                  
df2: 
   col1  col5  col0
0     1     5     0
1     1     5     0
2     1     5     0
3     1     5     0
4     1     5     0
5     1     5     0
于 2019-09-30T19:35:31.607 回答