[英]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.