J'ai un cadre de données avec une colonne représentant les phases ('A', 'B', et 'C'). Je dois découper le cadre de données pour n'avoir que la colonne 'A', la diviser par 2 et ajouter la valeur à l'autre colonne.
En voici un exemple :
import pandas as pd
data = {'time': [1,2,1,2,1,2,],
'phase': ['A', 'A', 'B', 'B', 'C', 'C' ],
'value': [2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(data)
print(df)
time phase value
0 1 A 2
1 2 A 3
2 1 B 4
3 2 B 5
4 1 C 6
5 2 C 7
slice_A = df.loc[df['phase']== 'A', 'value'] /2
print(slice_A)
0 1.0
1 1.5
Name: value, dtype: float64
df.loc[df['phase']=='B', 'value'] += slice_A
df
time phase value
0 1 A 2.0
1 2 A 3.0
2 1 B NaN
3 2 B NaN
4 1 C 6.0
5 2 C 7.0
Je comprends que c'est parce que l'index de slice_A
n'est pas la même chose que :
df.loc[df['phase']=='B', 'value']
J'ai essayé de réinitialiser la série avec l'index du cadre de données découpé. J'ai également essayé de travailler avec des cadres de données au lieu de séries, mais je n'ai pas réussi à le faire. Mais j'obtiens toujours des valeurs Nan.