以下是一个示例代码,演示如何根据另一个数据框中的行名称来筛选列。
import pandas as pd
# 创建第一个数据框
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['row1', 'row2', 'row3'])
print("第一个数据框:")
print(df1)
# 创建第二个数据框
df2 = pd.DataFrame({'row_name': ['row1', 'row3'], 'columns_to_select': ['A', 'C']})
print("第二个数据框:")
print(df2)
# 根据第二个数据框中的行名称来筛选第一个数据框的列
selected_columns = df2.apply(lambda row: df1.loc[row['row_name'], row['columns_to_select']], axis=1)
# 将选择的列合并为一个新的数据框
new_df = pd.DataFrame(selected_columns.tolist(), columns=df2['columns_to_select'], index=df2['row_name'])
print("筛选后的数据框:")
print(new_df)
输出结果如下:
第一个数据框:
A B C
row1 1 4 7
row2 2 5 8
row3 3 6 9
第二个数据框:
row_name columns_to_select
0 row1 A
1 row3 C
筛选后的数据框:
A C
row1 1 7
row3 3 9
在这个示例中,我们首先创建了两个数据框df1和df2。df1是我们要筛选的数据框,df2包含了要筛选的行名称和要选择的列名称。然后,我们使用apply函数将df2中的每一行作为参数,通过lambda函数来筛选df1中相应行和列的值。最后,我们将选择的列合并成一个新的数据框new_df。
上一篇:按照另一个实体的连接列进行排序