【发布时间】:2019-09-05 21:48:22
【问题描述】:
我有以下数据框:
Name1 Number1 Name2 Number2 Group
R 1 G 5 1
B EXP Y 9 2
Y 225 L 185 2
F 17 D 2 2
H 259 G 175 3
X 172 Q EXP 3
我正在尝试搜索每个“组”,并查看 either Number 列中的任何数字是否在特定范围内。如果此范围内的组中存在一个值,我想将组中的 ALL 名称附加到列表中。一个很大的障碍是 Number 列可以包含偶尔出现的字符串,并且这些列的处理方式与超出范围的数字相同。
在这个例子中,我们会说范围是 200-300
搜索组后的结果列表将是:
L = [B,Y,Y,L,F,D,H,G,X,Q]
请注意,列表中没有包含第 1 组的名称,因为第 1 组在指定范围内的 Number1/Number2 列中不包含任何值。
到目前为止我的代码:
newList = {}
dict_of_groups = {k: v for k, v in df.groupby('Group')}
for df in dict_of_groups.values()
if df[df['Number1'] | df['Number2'] > 199]: #how do I specify AND < 300 here?
a = df['Number1'].values.tolist()
b = df['Number2'].values.tolist()
newList.update(a,b)
我对如何有效地操作 dict_of_dataframes 中的每个数据帧有点困惑。有关如何最好地与这些团体合作的任何建议?
【问题讨论】: