Mohamed Elnemr نشر 30 أغسطس 2021 أرسل تقرير نشر 30 أغسطس 2021 لدي بيانات على شكل Dataframe وأريد استبدال قيم بعض العناصر التي تتخطى قيمتها 100 وأقوم بجعلها تساوى الصفر، فكرت باستخدام الكود التالي: df[df.my_channel > 100].my_channel = 0 لكنه لم يفلح، كيف يمكنني فعل هذا؟ 1 اقتباس
0 Ahmed Sharshar نشر 30 أغسطس 2021 أرسل تقرير نشر 30 أغسطس 2021 يمكنك استخدام الدالة iloc أو الدالة .loc من أجل تحديد أماكن العناصر التي تحقق الشرط الذي تريد تغييره كالتالي: edge = df.my_channel > 100 column_name = 'my_channel' df.loc[edge, column_name] = 0 أو في سطر واحد يمكنك كتابتها كالتالي: df.loc[df.my_channel > 100, 'my_channel'] = 0 1 اقتباس
0 محمد أبو عواد نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 يمكنك استخدام دالة np.where لفعل ذلك كالتالي df['X'] = np.where(df['Y']>=100, 'yes', 'no') في حالتك يمكنك فعله كالتالي import numpy as np df['my_channel'] = np.where(df.my_channel > 100, 0, df.my_channel) 1 اقتباس
0 Ali Haidar Ahmad نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 بمكنك القيام بذلك من خلال الدالة mask: import pandas as pd import numpy as np df = pd.DataFrame({'Date' : ['11/8/2011', '11/9/2011', '11/10/2011', '11/11/2011', '11/12/2011'], 'Event' : ['Dance', 'Painting', 'Dance', 'Dance', 'Painting']}) df """ Date Event 0 11/8/2011 Dance 1 11/9/2011 Painting 2 11/10/2011 Dance 3 11/11/2011 Dance 4 11/12/2011 Painting """ #Hip-Hop بال Dance استبدال ال df['Event'].mask(df['Event'] == 'Dance', 'Hip-Hop', inplace=True) #لكي يتم التعديل على البيانات الأصلية inplace==True نضع df """ Date Event 0 11/8/2011 Hip-Hop 1 11/9/2011 Painting 2 11/10/2011 Hip-Hop 3 11/11/2011 Hip-Hop 4 11/12/2011 Painting """ ,أو باستخدام df.where: import pandas as pd import numpy as np df = pd.DataFrame({'Date' : ['11/8/2011', '11/9/2011', '11/10/2011', '11/11/2011', '11/12/2011'], 'Event' : ['Dance', 'Painting', 'Dance', 'Dance', 'Painting']}) #Hip-Hop بال Dance استبدال ال m = df.Event == 'Dance' df.where(~m,other='Hip-Hop') أو من خلال np.where: import pandas as pd import numpy as np df = pd.DataFrame({'Date' : ['11/8/2011', '11/9/2011', '11/10/2011', '11/11/2011', '11/12/2011'], 'Event' : ['Dance', 'Painting', 'Dance', 'Dance', 'Painting']}) #Art بال Painting استبدال ال df['Event'] = np.where((df.Event == 'Painting'),'Art',df.Event) df """ Date Event 0 11/8/2011 Dance 1 11/9/2011 Art 2 11/10/2011 Dance 3 11/11/2011 Dance 4 11/12/2011 Art """ إضافة للطريقة التي قدمها أحمد وهي iloc: import pandas as pd import numpy as np df = pd.DataFrame({'Date' : ['11/8/2011', '11/9/2011', '11/10/2011', '11/11/2011', '11/12/2011'], 'Event' : ['Dance', 'Painting', 'Dance', 'Dance', 'Painting']}) #Hip-Hop بال Dance استبدال ال df.loc[(df.Event == 'Dance'),'Event']='Hip-Hop' df """ Date Event 0 11/8/2011 Hip-Hop 1 11/9/2011 Painting 2 11/10/2011 Hip-Hop 3 11/11/2011 Hip-Hop 4 11/12/2011 Painting """ اقتباس
0 ريم المهدي نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 يمكنك ذلك عن طريق إستخدام الدالة loc كالتالي: import pandas as pd df = pd.DataFrame({'my_channel' : [100, 200, 500, 100, 50]}) df الناتج عبارة عن: my_channel 0 100 1 200 2 500 3 100 4 50 وبإستخدام الدالة loc الناتج يصبح: df.loc[(df.my_channel > 100),'my_channel']= 0 df my_channel 0 100 1 0 2 0 3 100 4 50 اقتباس
السؤال
Mohamed Elnemr
لدي بيانات على شكل Dataframe وأريد استبدال قيم بعض العناصر التي تتخطى قيمتها 100 وأقوم بجعلها تساوى الصفر، فكرت باستخدام الكود التالي:
لكنه لم يفلح، كيف يمكنني فعل هذا؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.