اذهب إلى المحتوى
  • 0

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

Mohamed Elnemr

السؤال

Recommended Posts

  • 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 في حال أردت أن يتم التعديل على المصفوفة الأصلية بدون إنشاء نسخة.

 

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

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...