如何使用for循环为多个数据帧选择特定列?

问题描述 投票:0回答:1

我试图使用 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) 的预期结果。但是,当我检查数据框时,更改并未应用。

python dataframe for-loop multiple-columns
1个回答
0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.