উত্তর:
ধরে df
নেওয়া একটি অনন্য সূচক রয়েছে, এটি সর্বাধিক মান সহ সারি দেয়:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
মনে রাখবেন যে, idxmax
আয় সূচক লেবেল । সুতরাং যদি ডাটাফ্রেমের সূচীতে সদৃশ থাকে তবে লেবেলটি স্বতন্ত্রভাবে সারিটি সনাক্ত করতে পারে না, তাই df.loc
একাধিক সারি ফেরত আসতে পারে।
অতএব, যদি df
কোনও অনন্য সূচক না থাকে তবে উপরের দিকে এগিয়ে যাওয়ার আগে আপনাকে অবশ্যই সূচিটিকে অনন্য করে তুলতে হবে। ডেটা ফ্রেমের উপর নির্ভর করে কখনও কখনও আপনি ব্যবহার করতে পারেন stack
বা set_index
সূচকটি অনন্য করতে পারেন । অথবা, আপনি কেবল সূচকটি পুনরায় সেট করতে পারেন (সুতরাং সারিগুলি 0 থেকে শুরু হয়ে পুনরায় নামকরণ করা হবে):
df = df.reset_index()
দেশ এবং স্থান হ'ল সিরিজের সূচি, যদি আপনার সূচকের প্রয়োজন না হয় তবে আপনি সেট করতে পারেন as_index=False
:
df.groupby(['country','place'], as_index=False)['value'].max()
সম্পাদনা:
দেখে মনে হচ্ছে আপনি প্রতিটি দেশের জন্য সর্বাধিক মান সহ জায়গাটি চান, নিম্নলিখিত কোডটি আপনি যা চান তা করবে:
df.groupby("country").apply(lambda df:df.irow(df.value.argmax()))
আমি মনে করি সর্বাধিক মান সহ সারি ফিরানোর সহজতমতম উপায় হ'ল এর সূচক পাওয়া। argmax()
সর্বাধিক মান সহ সূচকটি ফেরত দিতে ব্যবহার করা যেতে পারে।
index = df.Value.argmax()
এখন সূচকটি নির্দিষ্ট সারিটির বৈশিষ্ট্যগুলি পেতে ব্যবহার করা যেতে পারে:
df.iloc[df.Value.argmax(), 0:2]
এর index
বৈশিষ্ট্যটি ব্যবহার করুন DataFrame
। নোট করুন যে আমি উদাহরণটিতে সমস্ত সারি টাইপ করি না।
In [14]: df = data.groupby(['Country','Place'])['Value'].max()
In [15]: df.index
Out[15]:
MultiIndex
[Spain Manchester, UK London , US Mchigan , NewYork ]
In [16]: df.index[0]
Out[16]: ('Spain', 'Manchester')
In [17]: df.index[1]
Out[17]: ('UK', 'London')
আপনি যে সূচকটি দ্বারা মানটি পেতে পারেন:
In [21]: for index in df.index:
print index, df[index]
....:
('Spain', 'Manchester') 512
('UK', 'London') 778
('US', 'Mchigan') 854
('US', 'NewYork') 562
আপনি যা চান তা ভুল বোঝার জন্য দুঃখিত, অনুসরণ অনুসরণ করুন:
In [52]: s=data.max()
In [53]: print '%s, %s, %s' % (s['Country'], s['Place'], s['Value'])
US, NewYork, 854
সর্বাধিক মান সহ দেশ এবং স্থান মুদ্রণ করতে, নিম্নলিখিত কোডের লাইনটি ব্যবহার করুন।
print(df[['Country', 'Place']][df.Value == df.Value.max()])
কলামগুলিতে সর্বাধিক মান সন্ধানের জন্য আমার সমাধান:
df.ix[df.idxmax()]
সর্বনিম্ন:
df.ix[df.idxmin()]
তুমি ব্যবহার করতে পার:
মুদ্রণ (df প্রয়োগ [df প্রয়োগ [ 'VALUE'] == df প্রয়োগ [ 'VALUE']। সর্বোচ্চ ()])
পান্ডাস ব্যবহার করে ডেটা আমদানির চেষ্টা করার সময় আমি একই ধরণের ত্রুটির মুখোমুখি হয়েছিলাম, আমার ডেটাসেটের প্রথম কলামে শব্দ শুরুর আগে ফাঁকা জায়গা ছিল। আমি স্পেসগুলি সরিয়েছি এবং এটি একটি কবজির মতো কাজ করেছে !!