একটি পান্ডস ডেটাফ্রেমের কলামে পাঠ্যটি কীভাবে প্রতিস্থাপন করবেন?


103

আমার ডেটা ফ্রেমে এই জাতীয় কলাম রয়েছে:

range
"(2,30)"
"(50,290)"
"(400,1000)"
... 

এবং আমি ,ক্যাশাকে -ড্যাশ দিয়ে প্রতিস্থাপন করতে চাই । আমি বর্তমানে এই পদ্ধতিটি ব্যবহার করছি তবে কিছুই পরিবর্তিত হয়নি।

org_info_exc['range'].replace(',', '-', inplace=True)

কেউ সাহায্য করতে পারেন?

উত্তর:


214

ভেক্টরাইজড strপদ্ধতিটি ব্যবহার করুন replace:

In [30]:

df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
      range
0    (2-30)
1  (50-290)

সম্পাদনা

সুতরাং আপনি যদি চেষ্টা করেছিলেন এবং কেন এটি কার্যকর হয়নি তা যদি আমরা দেখি:

df['range'].replace(',','-',inplace=True)

দস্তাবেজগুলি থেকে আমরা এই ডেস্কটি দেখি:

str বা regex: str: স্ট্রিংয়ের সাথে সঠিকভাবে মিলে যায়_ স্থানটি মানের সাথে প্রতিস্থাপিত হবে

সুতরাং যেহেতু str মানগুলি মেলে না, কোনও প্রতিস্থাপন ঘটে না, নিম্নলিখিতগুলির সাথে তুলনা করুন:

In [43]:

df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)
df['range']
Out[43]:
0    (2,30)
1         -
Name: range, dtype: object

এখানে আমরা দ্বিতীয় সারিতে একটি সঠিক ম্যাচ পাই এবং প্রতিস্থাপনটি ঘটে।


40

গুগল থেকে অন্য যে কেউ এখানে আসার জন্য সমস্ত কলামে স্ট্রিং প্রতিস্থাপন কীভাবে করবেন সে সম্পর্কে অনুসন্ধান করুন (উদাহরণস্বরূপ, যদি কারও কাছে replaceঅপের 'রেঞ্জ' কলামের মতো একাধিক কলাম থাকে): পান্ডাদের ডেটাফ্রেম অবজেক্টে বিল্ট ইন পদ্ধতি রয়েছে।

df.replace(',', '-', regex=True)

সূত্র: ডকস


2

কলামের নামগুলিতে সমস্ত কমাগুলি আন্ডারস্কোর দিয়ে প্রতিস্থাপন করুন

data.columns= data.columns.str.replace(' ','_',regex=True)

2

এছাড়াও, কলামে একাধিক অক্ষর প্রতিস্থাপন করতে চাইছেন তাদের জন্য, আপনি নিয়মিত প্রকাশটি ব্যবহার করে এটি করতে পারেন:

import re
chars_to_remove = ['.', '-', '(', ')', '']
regular_expression = '[' + re.escape (''. join (chars_to_remove)) + ']'

df['string_col'].str.replace(regular_expression, '', regex=True)

0

আপনার যদি কেবলমাত্র একটি নির্দিষ্ট কলামে অক্ষরগুলি প্রতিস্থাপন করা প্রয়োজন হয় তবে কোনওভাবে regex = সত্য এবং জায়গায় = সত্য সব ব্যর্থ হয়েছে, আমি মনে করি এইভাবে কাজ করবে:

data["column_name"] = data["column_name"].apply(lambda x: x.replace("characters_need_to_replace", "new_characters"))

ল্যাম্বদা আরও একটি ফাংশনের মতো যা এই দৃশ্যে লুপের মতো কাজ করে। এক্স এখানে বর্তমান কলামে প্রতিটি এন্ট্রি প্রতিনিধিত্ব করে।

আপনার কেবলমাত্র যা করতে হবে তা হল "কলাম_নাম", "অক্ষর_নিন্দিত_পৃথিবদ্ধ স্থান" এবং "নতুন_চক্র্যাক্টর" change

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