Sarah111-AHM / Semsmah

2 stars 0 forks source link

3 #30

Closed Sarah111-AHM closed 1 year ago

Sarah111-AHM commented 1 year ago

لحل السؤال باستخدام مكتبة pandas وبدون استخدام for loop أو if، يمكن استخدام الدوال التالية:

import pandas as pd

sdata = {'cities': ['Paris', 'Marseille', 'Lyon', 'Toulouse', 'Strasbourg', 'Le Mans'],
         'distance': ['1542.1', '8695.5', '2587.5', '1875.7', '5987.0', '11014.9']}

df = pd.DataFrame(sdata)

df['country'] = 'France'
df['distance'] = df['distance'].astype(float)
df = df.sort_values('distance')

def print_nearest_city(city1, city2):
    nearest = df.loc[df['cities'].isin([city1, city2])].iloc[0]
    farthest = df.loc[df['cities'].isin([city1, city2])].iloc[1]
    difference = farthest['distance'] - nearest['distance']
    print(f"{nearest['cities']} is nearer than {farthest['cities']} by {difference} km")

print_nearest_city('Paris', 'Lyon')

تم إضافة العمود الجديد باستخدام القيمة الثابتة 'France'، ثم تم تحويل عمود المسافة إلى نوع float، وتم الاستفادة من التعابير المنطقية في pandas.DataFrame.loc لتحديد أقرب مدينة بين المدينتين المعطاة، ثم تم حساب الفرق في المسافة بينهما باستخدام القيم المحددة في DataFrame.