我正在尝试使用Pandas过滤DataFrame中的行,而不是使用:
df[(df.ColumnA == 1)]
我希望能够做到这一点:
i = 'A'
x = 'Column'+'i'
df[(df.x == 1)]
我的目标是循环使用列过滤器。 如果我能做到这一点会更好:
i = A
x = 'Column'+'i'
y = 1
df[(df.x == y)]
允许我在列中循环并循环过滤器类型:
谢谢!
答案 0 :(得分:0)
如果您尝试从DataFrame中获取系列,但由于.
表示法不允许变量而遇到问题,您可以使用括号代替:
i = 'A'
column = 'Column' + i
df = df[df[column] == 1]
您还可以在循环中创建遮罩并立即应用它:
column_base = 'Column'
suffixes = ['A','B','C','D']
mask = None
for i in suffixes:
column = column_base + i
if mask is None:
mask = df[column] == 1
else:
mask &= df[column] == 1
df = df[mask]