繁体   English   中英

Python:过滤 dataframe 行,以便值位于其他 dataframe 的列中

[英]Python: filter dataframe rows so that values are in columns of other dataframe

考虑到我有一个看起来像这样的 dataframe:

Gender Employed
1      1
0      0 
1      0
0      1

我还有另一个 dataframe 看起来像:

Name  Area
Andy  Gender
Ally  HR
Chris Employed
Tom   Food

我只想保留与我的第一个 dataframe 的列名相对应的区域列中的行条目。 这些是示例数据框,我的实际 dataframe 有数百列,因此没有涉及“性别”和“就业”的非常具体的答案将起作用。

最终结果应该是

Name  Area
Andy  Gender
Chris Employed

您可以像这样过滤 df:

df[df['Area'].isin(df2.columns)]

请参阅https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#basics了解 DataFrame 切片基础知识。

您想根据第一个 dataframe 中找到的列对第二个 dataframe 进行切片。

df1 = pd.DataFrame(
    [(1, 1), (0, 0), (1, 0), (0, 1)],
    columns=["Gender", "Employed"]
)

#    Gender  Employed
# 0       1         1
# 1       0         0
# 2       1         0
# 3       0         1

df2 = pd.DataFrame(
    [("Andy", "Gender"), ("Ally", "HR"),
     ("Chris", "Employed"), ("Tom", "Food")],
    columns=["Name", "Area"]
)

#     Name      Area
# 0   Andy    Gender
# 1   Ally        HR
# 2  Chris  Employed
# 3    Tom      Food


df2[df2.Area.isin(df1.columns)]

#     Name      Area
# 0   Andy    Gender
# 2  Chris  Employed

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM