如何解决在Pandas DataFrame中嵌入列表中的值进行突变
我有一只熊猫DataFrame
,如下所示:
A B
...
[x1,y,z1,z2] [1,2,3]
[x1,x2,z3] [10,11]
...
这是一个中等大小的数据框,其中包含500K
行和50
列。我需要更改数据框,以便将col A
个条目x1,x2 ...
替换为a1,a2,...
,并删除所有z
个条目。
对于上面的示例,转换应生成数据帧:
A B
...
[a1,y] [1,3]
[a1,a2] [10,11]
...
我可以将数据帧转换为JSON格式,进行解析并达到最终状态,但这似乎是一种不好的方法和解决方案。
解决方法
使用列表理解:
df['A'] = [[i.replace('x','a') for i in x if 'z' not in i] for x in df['A']]
,
爆炸A
。使用df.replace(regex)
将x
替换为a
,将z
开头的所有内容替换为NaN
。放下NaN
,然后将A返回列表。
df=df.explode('A').replace(regex={r'^z.$': np.nan,'x': 'a'}).\
dropna(thresh=2).groupby(level=0)['A'].agg(list).reset_index()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。