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ď č. 1In [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)