Добавить новый столбец к значению данных по кадрам, учитывая, что размер данных неизвестен - PullRequest
0 голосов
/ 02 мая 2020

У меня есть фрейм данных со столбцом E, который включает в себя самое большее значения

[200 300 400 600 1000]

Однако, поскольку я читаю несколько таких наборов данных из источника, не все мои фреймы данных имеют эти 5 значения, т. е. некоторые строки будут отсутствовать в одном кадре данных (например, имеет [200 300 400 1000], в то время как другие могут иметь другой набор записей (например, [200 300 600]). Я ценю, что они отображаются здесь как np.arrays или Series, но в моем Приложение Я имею дело с фреймом данных, содержащим другие столбцы, которые я здесь не показывал. Я показал их здесь для упрощения.

Я хочу добавить фиксированные значения во второй столбец, соответствующий к этим значениям, если они появляются, т. е. если кадр данных содержит 200, добавьте в новый столбец 100. Затем, если в столбце 300, добавьте 100. Существуют фиксированные значения, которые мне нужно добавить к этой карте к значениям в приведенном выше, поэтому, если мой фрейм данных выглядит как

E
200
300
400
600
1000

, тогда он должен стать

E       D
200     100
300     100
400     200
600     400
1000    400

, но если он, например,

E
200
300
600

, он должен стать

E       D
200     100
300     100
600     400

В действительности, значения в E отображаются на фиксированные значения в D, то есть

[100 100 200 400 400]

(на самом деле они представляют собой разницу между значением в E и следующим значением в E, при условии, что все значения указаны в E , и ни одно из них не пропущено).

Любая помощь или руководство приветствуются!

1 Ответ

1 голос
/ 02 мая 2020

IICU:

# Conditions
a=df['E']<=300
c=df['E'].between(500,1100)
b=df['E']==400
df['C']=0#Create Column C and populate zeroes

Использовать вложенные np.where для применения условий

 df['C']=np.where(a, 200,(np.where(b, df['E']-200, np.where(c,400,df['C']))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...