微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Pandas DataFrame中嵌入列表中的值进行突变

如何解决在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 举报,一经查实,本站将立刻删除。