我有一个简单的数据框,看起来像这样。我希望能够选择LOC是纽约的所有行,将此数据框作为子集并将其标记为变量,我可以使用该变量将纽约行附加到我使用win32创建的联系人电子邮件中。然后移动到波士顿并做同样的事情,等等。我无法弄清楚如何在没有明确命名的情况下提取LOC行。我希望随着LOC值的变化,这是动态的。
Contact LOC ... Add_Move First Name
0 [email protected] New York ... Add Joe
1 [email protected] New York ... Move Stan
2 [email protected] New York ... Add Rick
3 [email protected] New York ... Add Mike
4 [email protected] Boston ... Add Sonya
5 [email protected] Boston ... Move Matt
6 [email protected] Boston ... Move Randy
7 [email protected] Boston ... Add Sue
8 [email protected] Los Angeles ... Add Jill
9 [email protected] Los Angeles ... Move Steve
10 [email protected] 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'])