/ / Python: Priraďte hodnoty k prvému pozorovaniu každej skupiny v DataFrame - python, group-by, pandas

Python: Priraďte hodnoty k prvému pozorovaniu každej skupiny v DataFrame - python, group-by, pandas

Prečo v Pythone pomocou Pandy nemôžeme použiť nasledujúce priradiť hodnotu prvým pozorovaniam každej skupiny?

df["A"].groupby(df.ID).first()==0

or

df["A"].groupby(df.ID).first()==np.nan

kde model DataFrame vyzerá takto:

ID  A
1   2
1   1
1   .45
2   .14
2   3
2   4

Inými slovami, chcem

ID  A
1   0 or NaN
1   1
1   .45
2   0 or NaN
2   3
2   4

cumcount nefunguje pre mňa aj keď som nainštaloval Pandas 0.13. Rovnako ako ostatné, Pandas 0.13 sa nainštaluje s chybami a chcem sa vyhnúť riešeniu Pandas 0.13.

odpovede:

6 pre odpoveď č. 1
In [24]: df = read_csv(StringIO(data),sep="s+")

In [25]: df
Out[25]:
ID     A
0   1  2.00
1   1  1.00
2   1  0.45
3   2  0.14
4   2  3.00
5   2  4.00

[6 rows x 2 columns]

In [26]: df.loc[df.groupby("ID",as_index=False).head(1).index,"A"] = np.nan

In [27]: df
Out[27]:
ID     A
0   1   NaN
1   1  1.00
2   1  0.45
3   2   NaN
4   2  3.00
5   2  4.00

[6 rows x 2 columns]

0 pre odpoveď č. 2

Pravdepodobne dostanete to, čo chcete, ak ho priradíte novým df alebo ho upravíte, aby ste vykonali zmenu v mieste ... df.replace (1,5, nan, inplace = True)