পান্ডাসে সংখ্যার সবচেয়ে কার্যকরী উপায় কী?


131

আমার বলার সাথে একটি বড় (প্রায় 12 এম সারি) ডেটা ফ্রেম ডিএফ আছে:

df.columns = ['word','documents','frequency']

সুতরাং নিম্নলিখিত সময় মতো ফ্যাশন চালিত:

word_grouping = df[['word','frequency']].groupby('word')
MaxFrequency_perWord = word_grouping[['frequency']].max().reset_index()
MaxFrequency_perWord.columns = ['word','MaxFrequency']

তবে এটি চালাতে অপ্রত্যাশিত দীর্ঘ সময় নিচ্ছে:

Occurrences_of_Words = word_grouping[['word']].count().reset_index()

আমি এখানে কি ভুল করছি? একটি বৃহত ডেটাফ্রেমে উপস্থিতি গণনা করার আরও ভাল উপায় আছে কি?

df.word.describe()

বেশ দৌড়াদৌড়ি করেছে, তাই আমি এই ঘটনাগুলি_স_ওয়ার্ড ডেটা ফ্রেমটি তৈরি করতে খুব বেশি সময় নিবে বলে আমি আশা করি না।

PS: যদি উত্তরটি সুস্পষ্ট হয় এবং আপনি এই প্রশ্ন জিজ্ঞাসা করার জন্য আমাকে শাস্তি দেওয়ার প্রয়োজন বোধ করেন তবে দয়া করে উত্তরটিও অন্তর্ভুক্ত করুন। ধন্যবাদ.

উত্তর:


235

আমি মনে করি df['word'].value_counts()পরিবেশন করা উচিত। গ্রুপবাইয়ের যন্ত্রপাতি এড়িয়ে আপনি কিছুটা সময় সাশ্রয় করবেন। আমি কেন জানি না তার countচেয়ে বেশি ধীর হওয়া উচিত max। দু'টি মান হারিয়ে যাওয়া এড়াতে কিছুটা সময় নেয়। (তুলনা করুন size।)

যাই হোক না কেন, মান_ অ্যাকাউন্টগুলি আপনার শব্দগুলির মতো অবজেক্টের ধরণের হ্যান্ডেল করার জন্য বিশেষভাবে অনুকূলিত হয়েছে , সুতরাং আমি সন্দেহ করি যে আপনি এর থেকে আরও ভাল কিছু করতে পারবেন।


25
ধন্যবাদ। আমি একটি সিরিজের একটি নির্দিষ্ট মান গণনা দ্রুত করার জন্যও এই দরকারীটি পেয়েছি। যেমন df.word.value_counts()['myword']প্রায় দ্বিগুণ দ্রুত len(df[df.word == 'myword'])
চমত্কার

পুরো ডেটাফ্রেমে গণনা সম্পর্কে কী? এটি একটি কলামের জন্য কাজ করে।
বৈদিতা I.

2
আমার নিজের প্রশ্নের উত্তর দেওয়ার জন্য (এটি চিত্রিত করে): স্ট্যাক () ফাংশন
বৈদিতা I.

@ বৈদিতাস ইভিকা, আমি কীভাবে এটি ব্যবহার করব তা নিয়ে লড়াই করে চলেছি। আপনি একটি উদাহরণ দিতে পারেন? 'মাই ওয়ার্ড' কলামে না থাকলে কী হবে? এরপরে এটি একটি কীআরার উত্থাপন করে।
নিউবিয়েলপ

2
@ নিউবিয়েলপ, আমি এটি করেছি: ডিএফ [[আমি কলাম_নেমগুলির জন্য আমি]]। অ্যাস্টাইপ ('টিআর')। স্ট্যাক ()। মান_কাউন্ট ()। যোগ () যা প্রতিটি নির্বাচিত কলামকে স্ট্র টাইপের সাথে সেট করে সমান করে, সমস্ত ব্যক্তিকে স্ট্যাক করে শীর্ষে কলামগুলি, মূলত একটি কলাম তৈরি করে এবং তারপরে সেই কলামটিতে মান_কাউন্ট () এবং যোগফল () করে। :) স্ট্যাকটি বেশ কার্যকর, এটি সম্ভবত সবচেয়ে সুস্পষ্ট পছন্দ নাও হতে পারে, তবে আমার ব্যবহারের ক্ষেত্রে
মনোযোগের

19

যখন আপনি পান্ডাস ডেটা ফ্রেমে ব্যবহারের একটি কলামে শ্রেণিবদ্ধ তথ্যগুলির ফ্রিকোয়েন্সি গণনা করতে চান: df['Column_Name'].value_counts()

- উত্স


11

পূর্ববর্তী উত্তরগুলিতে কেবল একটি সংযোজন। আসুন ভুলে যাবেন না যে সত্যিকারের ডেটা নিয়ে কাজ করার সময় নালাগুলি থাকতে পারে, সুতরাং বিকল্পটি ব্যবহার করে গণনার মধ্যে অন্তর্ভুক্ত করাও কার্যকর dropna=False( ডিফল্ট হ'লTrue )

একটি উদাহরণ:

>>> df['Embarked'].value_counts(dropna=False)
S      644
C      168
Q       77
NaN      2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.