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

السؤال

نشر

لدي تلك البيانات على شكل 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...