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