【问题标题】:replace empty list with values in another column in pandas dataframe用熊猫数据框中另一列中的值替换空列表
【发布时间】:2019-08-01 22:16:36
【问题描述】:

我正在尝试用另一列替换一列中的值列表,下面是我正在使用的数据和脚本

old = [[51, 1], 
          [52, 1], 
          [53, -1], 
          [], 
          [54, 0], 
          [55, 0], 
          [52, 0], 
          [], 
          [52, 0], 
          [54, -1]]

import pandas as pd
df = pd.DataFrame(columns=['old','new'])     
df["old"]=old

new = [[51, 1], 
          [52, 1], 
          [53, -1], 
          [54, -2], 
          [54, 0], 
          [55, 0], 
          [52, 0], 
          [55. -3], 
          [52, 0], 
          [54, -1]]

df["new"]=new

for index, row in df.iterrows():
    if ((df["old"][index])==[]) :
        df.old[index] = df.new[index]

有没有比使用 for 循环更好的方法,实际上在我的脚本中有太多循环,所以我想避免使用 for 循环进行少量数据操作 如果有人知道这将是很大的帮助

【问题讨论】:

    标签: python dataframe data-manipulation


    【解决方案1】:

    你可以使用Series.mask:

    # df['old'] = df['old'].mask(df['old'].str.len() == 0, df['new'])
    df['old'].mask(df['old'].str.len() == 0, df['new'])
    
    0     [51, 1]
    1     [52, 1]
    2    [53, -1]
    3    [54, -2]
    4     [54, 0]
    5     [55, 0]
    6     [52, 0]
    7      [52.0]
    8     [52, 0]
    9    [54, -1]
    Name: old, dtype: object
    

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 1970-01-01
      • 2015-01-19
      • 2018-08-16
      • 2023-04-03
      相关资源
      最近更新 更多