【发布时间】:2018-08-20 22:21:07
【问题描述】:
我正在尝试迭代地创建数据框的子集。一个玩具例子:
In:
A B participant
0 1 3 1
1 2 4 1
2 5 8 2
3 4 9 2
4 3 7 3
(条件语句感谢下方评论者)
for p in df:
subset = df[df['participant'] == p].loc[: , 'A']
期望的结果是:
A participant
0 1 1
1 2 1
A participant
0 5 2
1 4 2
等等
但是 for 循环按行而不是参与者创建子集。如何获得每个参与者的子集?
最初的尝试:
for p in df:
p.pressure = df[(:, 'pressure') & (df['participant'] == p)]
【问题讨论】:
-
好的,谢谢,但看起来我现在循环的是列标题而不是扬声器?
-
您可以将其更改为
for p in df['participant'],但我觉得这是XY Problem。你想做什么?可能有一个更简单的解决方案,可能使用groupby()。 -
我想知道如何每次使用相同的标准迭代地对数据帧进行子集化。在此示例中,for 循环应为每个参与者提供所有压力值的子集。当前语法给出了重复的子集。
-
你能举一个具体的例子,包括样本输入和期望的输出吗?尝试提供minimal reproducible example。更多关于how to create good reproducible pandas examples.
-
用上面的玩具数据框编辑的问题
标签: python pandas for-loop indexing