![](/img/trans.png)
[英]How can I subset a data frame for unique rows using repeating values from a column in another data frame in python?
[英]How can I subset a data frame based on a list of unique values in a columns of that same data frame?
我有一个简单的数据框,看起来像这样。 我希望能够选择LOC是纽约的所有行,将此数据框作为子集并将其标记为变量,我可以使用该变量将纽约行附加到我使用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
布尔索引。 您可以根据列值屏蔽数据框中的列https://www.geeksforgeeks.org/boolean-indexing-in-pandas/
获取DataFrame中的所有唯一位置。
locations = set(df.loc[:,"LOC"])
地点将返回一组{“纽约”,“波士顿”,...}
for location in locations:
variable = df[df["LOC"]==location]
for循环将遍历创建的值集。 要根据列值过滤数据,我们可以根据==,!=,...等运算符创建一个掩码。
你可以使用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'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.