Добавить новый столбец в набор данных с условием? - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в pandas и python, но я хочу добавить новый столбец, который собирает все данные строки, и вставить его в новый столбец, например:

df_final = pd.read_csv('df_final.csv')

House_No = df_final['House_No_'].copy()
Street = df_final['Street'].copy()
City = df_final['City'].copy()
District = df_final['District'].copy()
Postl_Code = df_final['Postl_Code'].copy()

df_final['Full_Address']=(House_No +' , '+ Street +' , '+ City +' , '+ District +' , '+ str(Postl_Code))

вывод:

enter image description here

когда номер дома равен нулю, новая ячейка становится нулевой ... найдите ее в строках 7,8 и 9 на изображении. как можно игнорировать пустую клетку и просто взять икру ??

Заранее спасибо.

1 Ответ

2 голосов
/ 28 апреля 2020
import numpy as np
import pandas as pd
# sample data
np.random.seed(1)
df = pd.DataFrame(np.random.randint(1,10, size=(5,5)), columns=list('abcde'))
df.iloc[2, 0] = np.nan
# use np.where with join
df['new_col'] = np.where(df['a'].isna(), df.iloc[:, 1:].astype(str).apply(', '.join, axis=1),
                         df.astype(str).apply(', '.join, axis=1))



     a  b  c  d  e          new_col
0  6.0  9  6  1  1  6.0, 9, 6, 1, 1
1  2.0  8  7  3  5  2.0, 8, 7, 3, 5
2  NaN  3  5  3  5       3, 5, 3, 5
3  8.0  8  2  8  1  8.0, 8, 2, 8, 1
4  7.0  8  7  2  1  7.0, 8, 7, 2, 1

или, если вам все равно, находится ли nan в конечном выводе, просто сделайте:

df['new_col1'] = df.astype(str).apply(', '.join, axis=1)

     a  b  c  d  e         new_col1
0  6.0  9  6  1  1  6.0, 9, 6, 1, 1
1  2.0  8  7  3  5  2.0, 8, 7, 3, 5
2  NaN  3  5  3  5  nan, 3, 5, 3, 5
3  8.0  8  2  8  1  8.0, 8, 2, 8, 1
4  7.0  8  7  2  1  7.0, 8, 7, 2, 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...