【发布时间】:2017-05-22 11:39:08
【问题描述】:
假设我有多个数据框,每个数据框都有相同的列名,尽管这些列的内容不一定相同。
我尝试遍历每个数据框的列并按名称删除列,但这不起作用。如果我在每个数据帧上单独尝试相同的方法,它会起作用
我有以下数据框:
import pandas as pd
df1 = pd.DataFrame({'user': ['John', 'Joe', 'Alice'],
'income': [40000, 50000, 42000],
'Unnamed: 0': [1, 2, 3]})
df2 = pd.DataFrame({'user': ['Luke', 'Paul', 'Jane'],
'income': [40000, 50000, 42000],
'Unnamed: 0': [1, 2, 3]})
df3 = pd.DataFrame({'user': ['Sue', 'Haley', 'Erica'],
'income': [40000, 50000, 42000],
'Unnamed: 0': [1, 2, 3]})
我试过了,没有成功:
dataframes = [df1, df2, df3]
for df in dataframes:
for column in df.columns:
if "Unnamed" in column:
df = df.drop(column, axis = 1)
这并没有改变dataframes 中的任何项目。
但是,如果我说:
df3 = df3.drop("Unnamed: 0", axis = 1)
返回:
pd.DataFrame({'user': ['Sue', 'Haley', 'Erica'],
'income': [40000, 50000, 42000]})
注意,这也适用于 df1 和 df2,而不仅仅是 df3。
任何人都可以帮助从列表中的所有数据框中删除不需要的列,而无需为每个数据框写一行吗?
【问题讨论】: