অন্য কলাম প্যান্ডাস ডেটা ফ্রেমের উপর ভিত্তি করে কলাম মান বের করুন


109

আমি এক ধরণের অন্য ভেরিয়েবলের উপর একটি ভেরিয়েবল কন্ডিশনার মান আহরণে আটকে যাচ্ছি। উদাহরণস্বরূপ, নিম্নলিখিত ডেটাফ্রেম:

A  B
p1 1
p1 2
p3 3
p2 4

আমি Aকখন এর মান পেতে পারি B=3? প্রতিবার যখন আমি এর মানটি বের করেছিলাম তখন আমি Aএকটি স্ট্রিং নয়, একটি জিনিস পেয়েছি।


আমি দেখছি, আমার item()শেষে যুক্ত করা উচিত ।
অ্যান্ডারসন ঘু

df.queryএবং pd.evalএই ব্যবহারের ক্ষেত্রে ভাল মানায়। তথ্যের জন্য pd.eval()ফাংশন, তাদের বৈশিষ্ট্য ও ব্যবহারের ক্ষেত্রে পরিবার, অনুগ্রহ করে পরিদর্শন pd.eval ব্যবহার পান্ডাস মধ্যে ডায়নামিক এক্সপ্রেশন মূল্যায়ন ()
cs95

উত্তর:


193

আপনি locসিরিজ পেতে যা আপনার শর্তটিকে সন্তুষ্ট করে এবং তারপরে ilocপ্রথম উপাদানটি পেতে ব্যবহার করতে পারেন :

In [2]: df
Out[2]:
    A  B
0  p1  1
1  p1  2
2  p3  3
3  p2  4

In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2    p3
Name: A, dtype: object

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'

24
আপনার সাহায্যের জন্য ধন্যবাদ. df.loc[df['B'] == 3, 'A'].item()আমার জন্য কাজ করে।
অ্যান্ডারসন ঝু

3
কলাম বিতে ডেটা ফ্রেমের '3' এর একাধিক এন্ট্রি থাকলে এটি কোনটি বেছে নেয়?
সুভাষ

1
df.loc [df ["শর্ত_পঞ্জি"]] == 0, ("কলাম_1", "কলাম 3," কলাম_3 "," কলাম 1997 ")] আমার পক্ষে কাজ করে multiple একাধিক কলাম নির্বাচন করার জন্য এই উদাহরণ They সেগুলি টুপলে থাকতে হবে
মোস্তফা উয়ার

যদি df.loc [df ['B'] == 300, 'এ'] iloc [0] এর অর্থ আউটপুট কী হবে?
ব্যবহারকারী 1999109

.item () স্পষ্টতই হ্রাস করা হয়েছে এবং সরানো হবে। এই কাজ করার জন্য অন্য উপায় আছে কি? আমি কলাম বা ডাটাটাইপটির নামতে আগ্রহী নই যা কোয়েরিতে .loc পদ্ধতিতেও ফিরে এসেছে।
ড্যান

39

আপনি চেষ্টা করতে পারেন query, যা টাইপিং কম:

df.query('B==3')['A']

অনুসন্ধান আকর্ষণীয় কারণ আমরা এর সাথে আরও জটিল ধারাগুলি যুক্ত করতে পারি
সমীর বাইদ

1
আইএমএইচও, এটি সেরা উত্তর।
NLR

27

df[df['B']==3]['A'], ধরে নিচ্ছি ডিএফ হ'ল আপনার পান্ডাস D ডেটাফ্রেম।


আপনি দয়া করে কোনও লিঙ্ক দিতে পারেন যেখানে এই পদ্ধতিটি পান্ডাস অফিসিয়াল ডকুমেন্টেশনে বর্ণিত হয়েছে?
ভ্যাসিলি 111

মানে ][অংশ।
ভাসিলি 111

11

df[df['B']==3]['A'].valuesযদি আপনি কেবল বন্ধনী ছাড়া আইটেম চান তা ব্যবহার করুন


আপনি দয়া করে কোনও লিঙ্ক দিতে পারেন যেখানে এই পদ্ধতিটি পান্ডাস অফিসিয়াল ডকুমেন্টেশনে বর্ণিত হয়েছে? মানে ][অংশ।
ভাসিলি 111

এটি ফলাফলটি []
সিড

[0]মানটি অ্যাক্সেস করার জন্য আপনাকে এখনও শেষে রাখতে হবে।
রুবেবপ

0
male_avgtip=(tips_data.loc[tips_data['sex'] == 'Male', 'tip']).mean()

আমি আমার নিয়োগের জন্য এই ক্লজিং এবং নিষ্কাশন অপারেশনগুলিতেও কাজ করেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.