pandas - 根据 Pandas 数据框中的相应值创建新列
问题描述
我有一个像这样的数据框:
id_a id_b col_a
NaN NaN NaN
0 133 [23]
7 191 [10,7]
10 303 [1]
23 200 [0,7,10]
我需要像这样创建一个新列:
id_a id_b col_a col_b
NaN NaN NaN NaN
0 133 [23] [200]
7 191 [10,7] [303,191]
10 303 [1] [101]
23 200 [0,7,10] [133,191,303]
逻辑是我id_b
根据id_a
.
示例:对于第一个列表 [1,0,7];
我返回 101,从id_b
因为 1 对应的值id_b
是 101。然后 133 因为 0 匹配 133,最后是 191,因为 7 是这里的对应值。
我曾尝试使用.loc
仅捕获那些行,但还没有走远。任何帮助是极大的赞赏
解决方案
explode
那时IIUCmap
df.col_a.explode().map(dict(zip(df.id_a,df.id_b))).groupby(level=0).agg(list)
0 [101, 133, 191]
1 [200]
2 [303, 191]
3 [101]
4 [133, 191, 303]
Name: col_a, dtype: object
推荐阅读
- amazon-redshift - 如何使用 Glue 删除 Redshift 中的 ''(单引号)?
- windows - 通过 docker 在 NPM 中的 Enoent 重命名错误
- maven - Maven 安装正在运行故障安全
- javascript - 从对象和数组的嵌套数组中提取属性值
- java - 访问 WSDL 失败:https://example.com?wsdl。它失败了:sun.security.validator.ValidatorException
- javascript - 如何在另一个具有不同样式的 div 中正确显示选中的属性?
- c# - 在分组的 ICollectionView 中实现延迟项目加载
- .net - 生成相对于 DateTime 的数字
- android - 合并错误:错误:android 28.0.3 中的属性 application@appComponentFactory
- objective-c - 不兼容的块指针类型将“void (^_Nullable)(enum MyReturnCode)”发送到“void (^)(enum MyReturnCode)”类型的参数