Aşağıdaki pandalar DataFrame'im var. aşağıdaki gibi Pandalar: Diğer sütun değerlerine göre sütunlar nasıl hesaplanır?
import pandas as pd
df = pd.read_csv('filename.csv')
print(df)
dog A B C
0 dog1 0.787575 0.159330 0.053095
1 dog10 0.770698 0.169487 0.059815
2 dog11 0.792689 0.152043 0.055268
3 dog12 0.785066 0.160361 0.054573
4 dog13 0.795455 0.150464 0.054081
5 dog14 0.794873 0.150700 0.054426
.. ....
8 dog19 0.811585 0.140207 0.048208
9 dog2 0.797202 0.152033 0.050765
10 dog20 0.801607 0.145137 0.053256
11 dog21 0.792689 0.152043 0.055268
....
Ben, sütunlar
"A"
,
"B"
toplayarak
"C"
yeni bir sütun oluşturun:
Şimdi
df['total_ABC'] = df[["A", "B", "B"]].sum(axis=1)
ben "A" < 0.78
sonra özetlenebilir yeni oluşturursanız yani şartlı dayalı Bunu yapmak istiyoruz sütun df['smallA_sum'] = df[["A", "B", "B"]].sum(axis=1)
. Aksi halde, değer sıfır olmalıdır.
Böyle bir koşullu ifadeler nasıl oluşturulur?
Benim düşünce Ancak, bu işe yaramazsa ve ben eksenini belirlemek mümkün değilim
df['smallA_sum'] = df1.apply(lambda row: (row['A']+row['B']+row['C']) if row['A'] < 0.78))
kullanmak olacaktır.
Diğer sütunların değerlerini temel alarak bir sütun nasıl oluşturulur?
Ayrıca, sütun dog2_sum
oluşturmak, her df['dog'] == 'dog2'
için böyle bir şey yapabileceğini yani
df['dog2_sum'] = df1.apply(lambda row: (row['A']+row['B']+row['C']) if df['dog'] == 'dog2'))
ama benim yaklaşım yanlıştır.
`
'.where()' çözümü mükemmel! Teşekkürler – ShanZhengYang