我有一个看起来像这样的简单数据框。我希望能够选择LOC是New York的所有行,将此数据框子集并将其标记为变量,可以用来将New York行添加到使用win32创建的电子邮件中。然后移到波士顿,做同样的事情,依此类推。我无法弄清楚如何在没有明确命名的情况下提取LOC行。我希望随着LOC值的变化而变得动态。
Contact LOC ... Add_Move First Name
0 mike@osjloc1.com New York ... Add Joe
1 mike@osjloc1.com New York ... Move Stan
2 mike@osjloc1.com New York ... Add Rick
3 mike@osjloc1.com New York ... Add Mike
4 jeff@osjloc2.com Boston ... Add Sonya
5 jeff@osjloc2.com Boston ... Move Matt
6 jeff@osjloc2.com Boston ... Move Randy
7 jeff@osjloc2.com Boston ... Add Sue
8 dave@osjloc.com Los Angeles ... Add Jill
9 dave@osjloc.com Los Angeles ... Move Steve
10 dave@osjloc.com Los Angeles ... Add Bill
答案 0 :(得分:0)
布尔索引。您可以根据列值在数据框中屏蔽列 https://www.geeksforgeeks.org/boolean-indexing-in-pandas/
获取DataFrame中的所有唯一位置。
locations = set(df.loc[:,"LOC"])
位置将返回一组{“纽约”,“波士顿”,...}
for location in locations:
variable = df[df["LOC"]==location]
for循环将遍历创建的值集。要基于列值过滤数据,我们可以基于==,!=,...
等运算符创建掩码答案 1 :(得分:0)
您可以使用pandas
groupby。
groups = yourdataframe.groupby('LOC')
groups
包含根据'LOC'
列拆分的数据帧子集。如果对其进行迭代,则每次迭代都有一个2长度的元组。广告索引0(与'LOC'
的值相对应的字符串)在索引1处与子集相对应的数据帧(仍为数据帧)。
for locname, subset in groups:
#do whatever you want with the subset
不确定要做什么,但是例如,要打印电子邮件列表,可以执行以下操作:
for locname, subset in groups:
print(subset['Contact'])