我是数据框和 Python 的新手。我有一个现有的 16 列数据框。我有一个我想要的列列表(这会改变,因此列名将在列表中)。我可以使用列表和原始数据框创建新数据框吗?
这是我尝试过的:
df = df.select([c for c in df.columns
if c not in columns])
return df
错误信息:
TypeError:“列表”对象不可调用
正如对您问题的评论中已经建议的那样,您可以使用列表来分割数据框。
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.
您可以使用“重新索引”方法:
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