Python Pandas копирует строку из одной ячейки в другую на основе нескольких условий (длина и содержимое) - PullRequest
0 голосов
/ 06 ноября 2018

Как скопировать значения в ячейке из одного столбца в другой, если они удовлетворяют определенному условию. В этом случае длина содержимого ячейки (больше 1) и содержимого ячейки (не включает в себя букву «а»).

import numpy as np
import pandas as pd

data= np.array([[ 'a','b','c','xx','yy'], [ 'zz','ff','aa','a','b']])
dataset = pd.DataFrame(data.T, columns = ['col1', 'col2'])

   col1 col2
0   a   zz
1   b   ff
2   c   aa
3   xx  a
4   yy  b

Вывод будет выглядеть так:

   col1 col2
0   a   zz
1   b   b
2   c   c
3   xx  a
4   yy  b

Вот где я остановился:

for x in dataset['col1']:
     if len(x) == 1 :
         ##replace col2 value with that of x

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

В этом случае вы можете использовать второй параметр .loc, который позволяет вам задать конкретное имя столбца, которое будет "получать" значение, установленное справа от оператора =:

dataset.loc[dataset['col2'].str.len() > 1, 'col2'] = dataset['col1']
0 голосов
/ 06 ноября 2018

pandas.Series.where

mask1 = dataset.col2.str.len() > 1
mask2 = dataset.col1.ne('a')

dataset.assign(col2=dataset.col1.where(mask1 & mask2, dataset.col2))

  col1 col2
0    a   zz
1    b    b
2    c    c
3   xx    a
4   yy    b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...