【问题标题】:Combining 2 columns in the same pandas dataframe into a new column, keeping only specific values将同一个 pandas 数据框中的 2 列组合成一个新列,只保留特定值
【发布时间】:2021-02-27 22:18:51
【问题描述】:

我正在处理一个包含二手车信息的数据集,但该数据集缺少一些年份值。我的想法是尝试使用一些 VIN 号码来解码年份,并将任何缺失的年份填写到一个新列中。我的目标是创建一个新列,其中包含原来的年份,以及我能够从 VIN 号解码的任何缺失年份值。这是一个示例:

Original Dataframe:
    year    vin_year
0   2009    ***
1   2010    ***
2   ***     2010
3   2020    2020
4   ***     2011
5   ***     ***

Updated Dataframe:
    year    vin_year    all_year
0   2009    ***         2009
1   2010    ***         2010
2   ***     2010        2010
3   2020    2020        2020
4   ***     2011        2011
5   ***     ***         ***

到目前为止我尝试过的代码如下,但是我得到了“无效的语法”。感谢您提供任何和所有帮助,谢谢!

for i in vehicle_data['year']:
    for j in vehicle_data['vin_year']:
        if i != j and j != '***':
            vehicle_data['all_year'] = j
            else vehicle_data['allyear'] = i

【问题讨论】:

    标签: python pandas dataframe loops


    【解决方案1】:

    在哪里使用 numpy 是一个很好的解决方案

    import pandas as pd
    import numpy as np
    
    # make an example
    data = {'A' : [2000, '***',2010, '***'], 'B' : [2000, 2005, 2010, '***']} 
    df = pd.DataFrame(data)
    
    # combine the results
    df['C'] = np.where(df['A'] == '***', df['B'], df['A'])
    
    df
    

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多