создание некоторых новых столбцов на основе старых

#python #pandas #dataframe

Вопрос:

Создайте новый возраст столбца. Это текущий год (2019) за вычетом года выпуска автомобиля. Если возраст равен 0, установите его равным 1.

Q1.Создайте новый возраст столбца. Это текущий год (2019) за вычетом года выпуска автомобиля. Если возраст равен 0, установите его равным 1. Мои коды приведены ниже:

 df = pd.read_csv('car_train_data.csv',sep= ";",index_col= 0)
#method1
df["age"]= df[['age']].applymap(lambda x: 1 if pd(x) = 0)
#method2
df["age"]= (df["age"] == 0).all(1)
 

Но это не удалось…Кто-нибудь может помочь с этим??

Ответ №1:

Я не уверен, какими данными вы располагаете, но попробуйте вот это.

 import numpy as np
df['age'] = np.where(df['age']==0, 1, df['age'])
 

Комментарии:

1. df[«возраст»] = 2019 — df[«Год»] df[«возраст»] = np.где(df[«возраст»]==0, 1, df[«возраст»])

2. df[‘возраст’] = np.где((2019 — df[‘Год’])==0,1,(2019 — df[‘Год’])). Это может сработать

3. Если вы хотите рассчитать возраст 2019 года в столбце возраст, это правильно.

4. Большое вам спасибо!

Ответ №2:

Игрушечный пример,

Ввод

     year    model
0   2019    a
1   2018    b
2   2017    c
3   2019    d


df=pd.DataFrame({
    'year':[2019, 2018, 2017, 2019],
    'model':['a','b','c','d']
})
df['age'] = np.where((2019 - df.year)==0,1,(2019 - df.year))
df
 

Выход

     year    model   age
0   2019    a       1
1   2018    b       1
2   2017    c       2
3   2019    d       1
 

Комментарии:

1. df[‘возраст’] = np.где((2019 — df[‘Год’])==0,1,(2019 — df[‘Год’])) . Это может сработать