zam*_*ero 8 python list dataframe pandas
我的DataFrame在第一列中有一个字符串,在第二列中有一个数字:
            GEOSTRING  IDactivity
9     wydm2p01uk0fd2z           2
10    wydm86pg6r3jyrg           2
11    wydm2p01uk0fd2z           2
12    wydm80xfxm9j22v           2
39    wydm9w92j538xze           4
40    wydm8km72gbyuvf           4
41    wydm86pg6r3jyrg           4
42    wydm8mzt874p1v5           4
43    wydm8mzmpz5gkt8           5
44    wydm86pg6r3jyrg           5
45    wydm8w1q8bjfpcj           5
46    wydm8w1q8bjfpcj           5
我想要做的是操纵这个DataFrame,以便为每个不同的"IDactivity"值创建一个包含字符串的列表对象,该字符串由每个"GEOSTRING"值的第5个字符组成.所以在这种情况下,我有3个不同的"IDactivity"值,我将在我的列表对象中有3个字符串,如下所示:
['2828', '9888','8888']
同样,您在每个字符串中看到的符号是每个"GEOSTRING"值的第5个值.
我要问的是一种解决方案或方法,它不涉及太复杂的for循环,并且尽可能高效,因为我必须操纵大量数据.我希望它干净而快速.
我希望它足够清楚.
这可以很容易地完成如下一个班轮:(被认为也很快)
result = df.groupby('IDactivity')['GEOSTRING'].apply(lambda x:''.join(x.str[4])).tolist()
这将数据帧按值分组,IDactivity然后从GEOSTRING第5个元素(索引4)的每个相应字符串中选择,并将其与其他相应的字符串连接.最后我们添加tolist()方法来获取输出列表而不是pandas Series.
输出:
['2828', '9888', '8888']
文档:
| 归档时间: | 
 | 
| 查看次数: | 172 次 | 
| 最近记录: |