Как я могу использовать Pandas для добавления комбинации циклов данных, которые не перечислены в Python - PullRequest
1 голос
/ 09 октября 2019
a = [["a1","b1"],["a2","b2"],["a3","b3"],["a4","b4"],["a5","b5"]]

df = pd.DataFrame({'A' : ["a1","a2","a3","a4"], 'B' : ["b1","b2","b3", "b4"] , 'mean' : ["13.4","12,1","10.0","11.5"]})

Как добавить комбинацию, отсутствующую в списке "a", в строку фрейма данных?

Я хочу использовать contains() или isin()

ожидаемый результат В несуществующем списке заполняется среднее значение со значением по умолчанию 0.

pd.DataFrame({'A' : ["a1","a2","a3","a4","a5"], B' : ["b1","b2","b3", "b4","b5"] ,'mean' : ["13.4","12,1","10.0","11.5", "0"]}) 

1 Ответ

1 голос
/ 09 октября 2019

Создайте DataFrame конструктор и DataFrame.append к оригиналу, затем удалите дубликаты на DataFrame.drop_duplicates указанными столбцами и в последний раз замените пропущенные значения на fillna:

a = [["a1","b1"],["a2","b2"],["a3","b3"],["a4","b4"],["a5","b5"]]

df1 = df.append(pd.DataFrame(a,columns=['A','B'])).drop_duplicates(subset=['A','B']).fillna(0)

print (df1)
    A   B  mean
0  a1  b1  13.4
1  a2  b2  12,1
2  a3  b3  10.0
3  a4  b4  11.5
4  a5  b5     0

Другая идея с merge:

df1 = pd.DataFrame(a, columns=['A','B']).merge(df, how='left').fillna(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...