Панды добавляют строки в соответствии с каждым уникальным элементом столбца - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть фрейм данных, например:

ID A 
0  z
2  z
2  y
5  x

К которому я хочу добавить строки для каждого уникального значения столбца идентификатора:

ID A
0  z
2  z
2  y
5  x
0  b
2  b
5  b

Яв настоящее время это делается очень наивным способом, который довольно неэффективен / медленен:

IDs = df["ID"].unique()
for ID in IDs: 
    df = df.append(pd.DataFrame([[ID, "b"]], columns=df.columns), ignore_index=True)

Как бы я мог выполнить то же самое без явного вызова foreach, только вызовы функций панд?

1 Ответ

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

Используйте drop_duplicates, переписать столбец с помощью assign и append или concat до оригинала DataFrame:

df = df.append(df.drop_duplicates("ID").assign(A='B'), ignore_index=True)
#alternative
#df = pd.concat([df, df.drop_duplicates("ID").assign(A='B')], ignore_index=True)
print (df)
   ID  A
0   0  z
1   2  z
2   2  y
3   5  x
4   0  B
5   2  B
6   5  B
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...