• 0

استبدال قيمة بقيمة أخرى داخل dataframe في بايثون

لدي بيانات على هيئة dataframe ، وأود أن أقوم بتبديل قيم بعض العناصر فيها بقيم أخرى، فقط عناصر محددة وليست كل البيانات، كيف يمكنني فعل هذا؟

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يتم استخدام الدالة replace ولها الشكل التالي:

Syntax: DataFrame.replace( old value, new value)

مثال:

import pandas as pd
# إنشاء قاموس
dic1 = {'c1': ['55', '44', '33', '22'],
        'c2': ['1', '2', '3', '4']}

dic2 = {'c1': [ 'e','f', 'g', 'h'],
         'c2': ['argentena', 'barca', 'MachineLearning', 'ali']}
# تحويلها لداتا فريم
df1 = pd.DataFrame(dic1, columns=['c1', 'c2'])
df2 = pd.DataFrame(dic2, columns=['c1', 'c2'])
# عرض البيانات
display(df1)
display(df2)
"""
c1 	c2
0 	55 	1
1 	44 	2
2 	33 	3
3 	22 	4
"""
"""
 	c1 	c2
0 	e 	argentena
1 	f 	barca
2 	g 	MachineLearning
3 	h 	ali
"""
#  استبدال القيمة 3 في العمود الثاني من الفريم الأول بالقيمةالثانية من العمود الثاني في الفريم الثاني
# تحديد القيمة القديمة المراد استبدالها
old = df1['c2'][2] # حيث حددنا العمود الثاني والفهرس الذي يقابل القيمة 3
# تحديد القيمة الجديدة
new = df2['c2'][1]
# تنفيذ عملية الاستبدال
df1 = df1.replace(old,new)
# عرض النتيجة
display(df1)
"""
 	c1 	c2
0 	55 	1
1 	44 	2
2 	33 	barca
3 	22 	4
"""
# كما يمكنك استبدالها بقيمة أنت تريدها مثلا
old = df1['c1'][0]
df1 = df1.replace(old,'hsoub')
display(df1)
"""
c1 	c2
0 	hsoub 	1
1 	44 	2
2 	33 	barca
3 	22 	4
"""
# كما ويمكننا استبدال عمود بآخر
df1['c1'] = df1.replace(df1['c1'],df1['c2'])
display(df1)
"""
c1 	c2
0 	hsoub 	1
1 	44 	2
2 	33 	barca
3 	22 	4
"""

كما يمكنك تمرير الوسيط  inplace=True في حال أردت أن يتم التعديل على المصفوفة الأصلية بدون إنشاء نسخة.

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكننا استخدام الدالة Series.str.replace() او الدالة replace وذلك لتبديل قيم عناصر محددة بقيم أخرى، والفرق بينها وبين .replace()  فقط انها مفيدة في حالة اردت استبدال معلومات على الشكل string.

المثال التالي يوضح كيفية استخدام  replace :

# استدعاء المكتبة
import pandas as pd
  
# قراءة البيانات
data = pd.read_csv("data.csv")
  
# تبديل عناصر في عمود بعناصر أخرى
data["Age"]= data["Age"].replace(25.0,20.0)
  
#طباعة البيانات الجديدة
print(data)

هنا نقوم باختيار العمود Age وإستبدال بعض القيم العددية فيه من 25 الي 20.

أما اذا اردت استخدام الدالة str.replace فيمكنك استخدامها كالتالي:

# استدعاء المكتبة 
import pandas as pd
  
# قراءة البيانات
data = pd.read_csv("data.csv")
  
# استبدال قيم من عمود معين بقيم أخرى
data["country"]= data["country"].str.replace("Egypt", "KSA", case = False)
  
#طباعة البيانات المعدلة
print(data)

هنا نقوم باستبدال الكلمة "Egypt" بالكلمة "KSA" من العمود country، لاحظ أن case = False تعني أنه لا يهتم سواء كانت الكلمات بحروف كبيرة capital او حروف صغيرة small

تمّ تعديل بواسطة Ahmed Sharshar
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن