为了账号安全,请及时绑定邮箱和手机立即绑定

用增量数填充数据列值,Python 3.6

用增量数填充数据列值,Python 3.6

繁星coding 2021-11-09 20:05:21
我有 Dataframe 包含列 + "Order" 列,该列具有整数唯一编号,并且某些行为零。我需要从“订单”值的最大值用增量数更新零。例如:Max Value of df['Order'] = 4 并且有 3 条记录 df['Order'] == 0 那么具有 0 值的那 3 行需要用 5、6、7 填充。我试过下面的脚本:Dimension_Items = {'Col1':['A', 'B', 'C', 'D', 'E', 'F'], 'Order':[0,2,3,4,0,0]}Dimension_Items = pd.DataFrame.from_dict(Dimension_Items)Max_Order = Dimension_Items['Order'].max()Dimension_Items.loc[Dimension_Items['Order'] == 0, 'Order'] = range(Max_Order+1, len(Dimension_Items)+1)错误:Traceback (most recent call last):    Dimension_Items.loc[Dimension_Items['Order'] == 0, 'Order'] = range(Max_Order+1, len(Dimension_Items)+1)  File "C:\Python36\lib\site-packages\pandas\core\indexing.py", line 189, in __setitem__    self._setitem_with_indexer(indexer, value)  File "C:\Python36\lib\site-packages\pandas\core\indexing.py", line 606, in _setitem_with_indexer    raise ValueError('Must have equal len keys and value 'ValueError: Must have equal len keys and value when setting with an iterable给出错误,请帮助解决这个问题
查看完整描述

2 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

因此,如果我理解正确,我们可以隔离零,然后用列表中的值填充它们。


l = range(df.Order.max() + 1, df.Order.max() + df.loc[df.Order == 0, 'Order'].size + 1)


df.loc[df.Order == 0, 'Order'] = l


  Col1  Order

0    A      5

1    B      2

2    C      3

3    D      4

4    E      6

5    F      7 


查看完整回答
反对 回复 2021-11-09
?
四季花海

TA贡献1811条经验 获得超5个赞

您可以遍历 DataFrame 以查找 Order = 0 的项目,然后使用 max_order + 1 更新每个 Order。试试这个:


import pandas as pd


data = {


    'Col1': ['A', 'B', 'C', 'D', 'E', 'F'], 

    'Order': [0, 2, 3, 4, 0, 0]


}


df = pd.DataFrame(data)


max_order = df['Order'].max()


for i in range(len(df)):


    if df.loc[i, 'Order'] == 0:

        df.loc[i, 'Order'] = max_order + 1

        max_order += 1


df.head()

输出:


    Order   Value

0      A        5

1      B        2

2      C        3

3      D        4

4      E        6

希望这可以帮助。


查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信