我试图使用 for 循环从多个不同的数据帧中仅选择某些列。在 for 循环中, print(df.shape) 给出了预期的结果。但是,当我在 for 循环完成后检查结果时,没有对数据帧进行任何更改。
我有以下数据框:
data = { 'Name': ['Tom', 'Nick', 'Joe']
,'Age': [20, 21, 19]
,'Color': ['blue', 'pink', 'orange']}
puppy_df = pd.DataFrame(data)
data = { 'Name': ['Ann', 'Jill', 'Abby']
,'Age': [33, 44, 55]
,'Color': ['teal', 'red', 'green']}
kitty_df = pd.DataFrame(data)
我只想使用 for 循环从每个数据帧中选择“名称”和“颜色”列:
my_list = [puppy_df, kitty_df]
for i in my_list:
i = i[['Name','Color']]
print(i.shape)
for 循环打印每个数据帧的形状 (3,2) 的预期结果。但是,当我检查数据框时,更改并未应用。
my_list = [puppy_df, kitty_df]
columns_to_keep = ['Name', 'Color']
for i in my_list:
print('shape before: ', i.shape)
i.drop(columns = i.columns.difference(columns_to_keep), inplace = True)
print('shape after: ', i.shape)