用列表(df)屏蔽两列

2024-04-26 21:41:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含两个元素的列表。你知道吗

我想将我的数据帧过滤到[column_a, column_b]在列表列表中的行。你知道吗

示例:

输入:

l = [ [0,1], [1,2] ]
df = pd.DataFrame({'column_a' : [0, 1, 2], 'column_b' : [1, 3, 0]})

   column_a  column_b
0         0         1
1         1         3
2         2         0  

预期产量:

   column_a  column_b
0         0         1

Tags: 数据元素示例dataframedf列表columnpd
3条回答

从列表创建df并合并:

df.merge(pd.DataFrame(l,columns=df.columns))

   column_a  column_b
0         0         1

循环的一些时间一点也不坏

df[[x in l for x in df.values.tolist()]]
Out[135]: 
   column_a  column_b
0         0         1

我的解决方案

l = [[0, 1], [1, 2]]
df = pd.DataFrame({'column_a': [0, 1, 2], 'column_b': [1, 3, 0]})
for elem in l:
    df.loc[(df['column_a'] == elem[0]) & (df['column_b'] == elem[1]), 'Result'] = 1
df = df[df['Result'] == 1].drop(['Result'], axis=1)

输出:

   column_a  column_b
0         0         1

相关问题 更多 >