добавить строку для дублирования строк в двух столбцах данных - PullRequest
2 голосов
/ 13 марта 2020

Я хотел бы создать диаграмму солнечных лучей. Поэтому мне нужен фрейм данных с уникальными строками в каждом столбце (для каждого уровня диаграммы). Моя цель - добавить дополнительную строку ко всем строкам в col2, которые появляются в любом месте в col1. Мой исходный фрейм данных выглядит примерно так:

   col1     col2    value
0   pig      dog        3
1   cat  chicken        2    
2  fish      pig        4
3   dog     mule        7

Я бы хотел добиться чего-то вроде этого:

   col1     col2    value
0   pig   dog_ag        3
1   cat  chicken        2
2  fish   pig_ag        4
3   dog     mule        7

Любая помощь действительно ценится.

Ответы [ 2 ]

3 голосов
/ 13 марта 2020

Использование Series.mask с Series.isin:

df['col2'] = df['col2'].mask(df['col2'].isin(df['col1']), df['col2'] + '_ag')
print (df)
   col1     col2  value
0   pig   dog_ag      3
1   cat  chicken      2
2  fish   pig_ag      4
3   dog     mule      7
0 голосов
/ 13 марта 2020

Используя list comprehension

df["col2"] = [i+"_ag" if i in df["col1"].values else i for i in df["col2"]]

Или вы можете использовать np.where

df["col2"] = np.where(df["col2"].isin(df["col1"]), df["col2"]+"_ag", df["col2"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...