фрейм данных, как добавить указанную строку c, когда строка найдена в данном столбце - PullRequest
0 голосов
/ 04 марта 2020

Допустим, у меня есть фрейм данных P и где когда-либо есть в столбце b, Я хочу повторить эту строку, чтобы теперь она выглядела следующим образом:

From: 
a b c d
1 v 4 5
4 n 6 7
5 v 6 8

To:
a b c d
1 v 4 5
4 n 6 7
4 n 6 7
5 v 6 8

Я совершенно новичок в python и не нашел прямого пути к достижению sh этого. вот что я уже пробовал

if P['b']=='v':
    P.pd.concat(P.loc,ignore_index=True)

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Как правило, вы хотите избегать циклического перебора DataFrame всякий раз, когда можете, поэтому, если вы хотите найти все эти строки, использование lo c с логическим индексом может помочь вам найти их за один цикл, тогда вы можете скопировать Вы нашли в отдельном DataFrame. Затем просто объедините их.

p_2 = P.loc[P['b']=='n'].copy(deep=True)
P = pd.concat([P,P2],ignore_index=True)
1 голос
/ 04 марта 2020

Вы можете использовать DataFrame.append :

In [1]: df
Out[1]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
2  5  v  6  8

In [2]: df.append(df.loc[df['b'] == 'n'])
Out[2]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
2  5  v  6  8
1  4  n  6  7

Обратите внимание, что он добавляется в строку в конце DataFrame. Если вы хотите, чтобы он был рядом с копируемой строкой, вы можете использовать sort_index :

In [3]: df
Out[3]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
2  5  v  6  8

In [4]: df.append(df.loc[df['b'] == 'n']).sort_index()
Out[4]:
   a  b  c  d
0  1  v  4  5
1  4  n  6  7
1  4  n  6  7
2  5  v  6  8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...