我最终想按具有多个运输要求的项目与只有 1 个的项目进行分组。
我有一个看起来像这样的 pandas df 列:
ID #(column name = ID)
1111
1111,2222
1111,2222
2222,4444,3333
2222,4444
我如何创建一个字典对象或映射层(对所有建议开放),如果它匹配标准并更改键值,我可以在其中传递任何值?
例如,如果将该值1111, 4444
更改为Express Shipping, Standard Shipping
并使其位于同一数据框中。
我最终想按具有多个运输要求的项目与只有 1 个的项目进行分组。
1. shipping_num = (1111, 2222, 3333, 4444).
2. shipping_map = (Express shipping, Standard Shipping, 2-day shipping, 1-day shipping)
*NEW_SHIPPING MAP COLUMN*
Express shipping
Express shipping, Standard Shipping
Standard Shipping, 1-day shipping,2-day shipping
Standard Shipping, 1-day shipping
感谢您的关注!
shipping_num
您可以从和创建映射字典shipping_map
,然后使用str.split
+从列explode
中获取各个 ID 号。ID
然后用于map
获取运输地图;最后使用groupby
+agg
恢复原始形状:
shipping_num = (1111, 2222, 3333, 4444)
shipping_map = ('Express shipping','Standard Shipping', '2-day shipping', '1-day shipping')
mapping = dict(zip(shipping_num, shipping_map))
df['shipping_map'] = df['ID'].str.split(',').explode().astype(int).map(mapping).groupby(level=0).agg(', '.join)
输出:
ID shipping_map
0 1111 Express shipping
1 1111,2222 Express shipping, Standard Shipping
2 1111,2222 Express shipping, Standard Shipping
3 2222,4444,3333 Standard Shipping, 1-day shipping, 2-day shipping
4 2222,4444 Standard Shipping, 1-day shipping
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句