Mam problem z zastąpieniem, gdy próbuję zastąpić ciąg z wartością z innej kolumny. Chcę zastąpić "długość" z DF ["Długość"].

df["Length"]= df["Length"].replace('Length', df['Length'], regex = True)

Poniżej moje dane

Input:
**Formula**  **Length**
Length           5
Length+1.5       6
Length-2.5       5
Length           4
5                5

Expected Output:
**Formula**  **Length**
5                5
6+1.5            6
5-2.5            5
4                4
5                5

Jednak z kodem, którego używałem powyżej, zastąpi tylko całą komórkę zamiast długości. Dostaję poniżej wyjście: Odkryłem, że jest to spowodowane przez DF ["Kolumn"], jeśli użyłem jakiegokolwiek innego ciągów z tyłu (-1.5) nie zostanie zastąpiony.

**Formula**  **Length**
5                5
6                6
5                5
4                4
5                5

Czy mogę wiedzieć, czy istnieje jakaś metoda Wymień wartości z innych kolumn?

Dziękuję Ci.

7
Js _ lfzr 20 lipiec 2020, 09:45

1 odpowiedź

Najlepsza odpowiedź

Jeśli chcesz wymienić przez inną kolumnę, należy użyć {{ X0}}:

df["Formula"]= df.apply(lambda x: x['Formula'].replace('Length', str(x['Length'])), axis=1)
print (df)
  Formula  Length
0       5       5
1   6+1.5       6
2   5-2.5       5
3       4       4
4       5       5

Lub wymienia listę:

df["Formula"]= [x.replace('Length', str(y)) for x, y  in df[['Formula','Length']].to_numpy()]
7
jezrael 20 lipiec 2020, 06:56