我有一个 Dataframe ,有多个列,如t_orno,t_pono,t_sqnb,t_pric,......等等(这是一个有多个列的表)。第二个 Dataframe 包含来自第一个 Dataframe 的列的特定名称。
columnname t_pono t_pric : :
我只需要从第一个 Dataframe 中选择那些名字出现在第二个 Dataframe 中的列。在上面的例子中是t_pono,t_pric。如何才能做到这一点?
toe950271#
假设您有以下列(可以使用df.columns获得,它返回一个列表):
df.columns
df1_cols = ["t_orno", "t_pono", "t_sqnb", "t_pric"] df2_cols = ["columnname", "t_pono", "t_pric"]
要只从第一个 Dataframe 中获取第二个 Dataframe 中存在的列,可以执行set intersection(我将其转换为列表,因此可以使用它来选择数据):
list(set(df1_cols).intersection(df2_cols))
我们得到的结果是:
["t_pono", "t_pric"]
要将所有列放在一起并仅选择这些列:
select_columns = list(set(df1_cols).intersection(df2_cols)) new_df = df1.select(*select_columns)
1条答案
按热度按时间toe950271#
假设您有以下列(可以使用
df.columns
获得,它返回一个列表):要只从第一个 Dataframe 中获取第二个 Dataframe 中存在的列,可以执行set intersection(我将其转换为列表,因此可以使用它来选择数据):
我们得到的结果是:
要将所有列放在一起并仅选择这些列: