代码之家  ›  专栏  ›  技术社区  ›  the phoenix

从名称包含特定字符串的列创建新列

  •  1
  • the phoenix  · 技术社区  · 3 年前

    对于名称包含特定字符串的列 Time ,我想创建一个同名的新列。我想为每个Pax\u col项(如果有多个)更新列,使其与列相加 Temp .

    data={'Run_Time':[60,20,30,45,70,100],'Temp':[10,20,30,50,60,100], 'Rest_Time':[5,5,5,5,5,5]}
    df=pd.DataFrame(data)
    
    Pax_cols = [col for col in df.columns if 'Time' in col]
    df[Pax_cols[0]]= df[Pax_cols[0]] + df["Temp"]
    

    data={'Run_Time':[70,40,60,95,130,200],'Temp':[10,20,30,50,60,100], 'Rest_Time':[15,25,35,55,65,105]}
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   mozway    3 年前

    您可以使用:

    # get columns with "Time" in the name
    cols = list(df.filter(like='Time'))
    # ['Run_Time', 'Rest_Time']
    
    # add the value of df['Temp']
    df[cols] = df[cols].add(df['Temp'], axis=0)
    

    输出:

       Run_Time  Temp  Rest_Time
    0        70    10         15
    1        40    20         25
    2        60    30         35
    3        95    50         55
    4       130    60         65
    5       200   100        105