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

كيف يمكننا المرور على أسطر ال DataFrame في Pandas

Mohamed Elnemr

السؤال

لدي تلك البيانات على شكل dataframe 

import pandas as pd
data = [{'a':1, 'b':2}, {'a':3,'b':4}, {'a':5,'b':6}]
df = pd.DataFrame(data)

أريد أن أقوم بعمل حلقة تكرارية بإستخدام for للصفوف بداخل ال dataframe، حاولت بأكثر من طريقة ولم تفلح، كيف يمكنني أن أقوم بفعلها؟

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

Recommended Posts

  • 0

يمكننا إستخدام الدالة DataFrame.iterrows والتي تمكننا باستخدام الحلقات التكرارية بداخل dataframe في pandas.

المثال التالي يوضح ما تريد أن تقوم به.

import pandas as pd
data = [{'a':1, 'b':2}, {'a':3,'b':4}, {'a':5,'b':6}]
df = pd.DataFrame(data)

for index, row in df.iterrows():
    print(row['a'], row['b'])
    
>>> 1 2
	3 4
	5 6

 

تم التعديل في بواسطة Ahmed Sharshar
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

المرور على أسطر الداتافريم هو فكرة سيئة دوماً... أي دالة تحوي كلمة iter في اسمها حاول الابتعاد عنها قدر المستطاع (حدد سبب رغبتك في استخدامها ثم حاول أن تستخدم طرق أخرى) لأنها ستجعلك تنتظر جداً عندما يكون حجم الداتافريم أكبر من 1000. وبكافة الأحوال سأعرض لك الطرق المتاحة لتنفذ طلبك.
إضافة للطريقة التي قدمها أحمد هناك DataFrame.itertuples:

for row in df.itertuples(index=True, name='Pandas'):
    print(row.c1, row.c2)

مثال:

# importing pandas as pd
import pandas as pd

# sample dataframe
df = pd.DataFrame({
	'A': [1, 2, 3],
	'B': ['a', 'b', 'c']})
df
"""
    A 	B
0 	1 	a
1 	2 	b
2 	3 	c
"""
for row in df.itertuples(index=True, name='Pandas'):
    print(row.A, row.B)
"""
1 a
2 b
3 c
"""

عموماً هي أسرع من iterrows بكثير. كما ويمكنك استخدام iloc:

# importing pandas as pd
import pandas as pd

# sample dataframe
df = pd.DataFrame({
	'A': [1, 2, 3],
	'B': ['a', 'b', 'c']})
df
"""
    A 	B
0 	1 	a
1 	2 	b
2 	3 	c
"""
for i in range(0, len(df)):
    print (df.iloc[i]['A'], df.iloc[i]['B'])
"""
1 a
2 b
3 c
"""


 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...