मेरे पास यह नमूना डेटा सेट है:

df_samp = pd.DataFrame({'Name': ['Bob', 'John', 'Ross'], 'Counts': [5, 4, 3]})

मैं मूल्यांकन करना चाहता हूं कि क्या Counts कॉलम पंक्ति के अनुसार 5 से कम है, और फिर एक नया कॉलम जोड़ें जिसमें दिखाया गया है कि प्रत्येक विशिष्ट पंक्ति 5 से कम कितनी है। उदा।,

Name   Counts   Difference
Bob    5        0
John   4        1
Ross   3        2

नीचे सरल है, लेकिन मानक (और अपेक्षित) True या False लौटाता है:

df_samp['Counts'] = df_samp['Counts'] < 5

Name   Counts
Bob    False
John   True
Ross   True

मैं इसे एक कदम आगे कैसे ले जाऊं?

1
papelr 8 जून 2020, 18:24

1 उत्तर

सबसे बढ़िया उत्तर

np.where और df.abs:

import numpy as np

df_samp['Difference'] = np.where(df_samp['Counts'].le(5), (df_samp['Counts'] - 5).abs(), df_samp['Counts'])

आउटपुट:

   Name  Counts  Difference
0   Bob       5           0
1  John       4           1
2  Ross       3           2
2
Mayank Porwal 8 जून 2020, 18:46