আমি _x
প্রতিটি কলামের নামের মতো প্রত্যয় যুক্ত করতে চাই:
featuresA = myPandasDataFrame.columns.values + '_x'
আমি এটা কিভাবে করবো? অতিরিক্তভাবে, আমি x_
প্রত্যয় হিসাবে যুক্ত করতে চাইলে কীভাবে সমাধানটির পরিবর্তন হবে?
আমি _x
প্রতিটি কলামের নামের মতো প্রত্যয় যুক্ত করতে চাই:
featuresA = myPandasDataFrame.columns.values + '_x'
আমি এটা কিভাবে করবো? অতিরিক্তভাবে, আমি x_
প্রত্যয় হিসাবে যুক্ত করতে চাইলে কীভাবে সমাধানটির পরিবর্তন হবে?
উত্তর:
আপনি একটি list
উপলব্ধি ব্যবহার করতে পারেন :
df.columns = [str(col) + '_x' for col in df.columns]
অন্য অন্তর্নিহিত পদ্ধতিগুলির মতো .add_suffix()
এবং অন্তর্নিহিত পদ্ধতিও রয়েছে .add_prefix()
।
নিম্নলিখিতটি আমার মতে প্রত্যয় যুক্ত করার সর্বোত্তম উপায়।
df = df.add_suffix('_some_suffix')
যেহেতু এটি এমন একটি ফাংশন যা ডেটাফ্রেমে ডাকা হয় এবং ডেটাফ্রেম রিটার্ন করে - আপনি এটি কলগুলির শৃঙ্খলে ব্যবহার করতে পারেন।
inplace=True
প্যারামিটারের বিকল্প নেই)। অন্যথায়, নিখুঁত।
আপনি যদি df
জায়গায় স্থান পরিবর্তন করার চেষ্টা করছেন , তবে সবচেয়ে সস্তা (এবং সর্বাধিক সহজ) বিকল্পটি সরাসরি স্থানটিতে সংযোজন df.columns
(অর্থাত্ ব্যবহার করে Index.__iadd__
)।
df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
df
A B
0 9 12
1 4 7
2 2 5
3 1 4
df.columns += '_some_suffix'
df
A_some_suffix B_some_suffix
0 9 12
1 4 7
2 2 5
3 1 4
একটি উপসর্গ যোগ করতে, আপনি একইভাবে ব্যবহার করতে হবে
df.columns = 'some_prefix_' + df.columns
df
some_prefix_A some_prefix_B
0 9 12
1 4 7
2 2 5
3 1 4
আর একটি সস্তার বিকল্প f-string
ফর্ম্যাটিং সহ একটি তালিকা বোধগম্যতা ব্যবহার করছে (পাইথন ৩..6 + এ উপলব্ধ)।
df.columns = [f'{c}_some_suffix' for c in df]
df
A_some_suffix B_some_suffix
0 9 12
1 4 7
2 2 5
3 1 4
এবং উপসর্গের জন্য, একইভাবে,
df.columns = [f'some_prefix{c}' for c in df]
পদ্ধতিতে শৃঙ্খলাবদ্ধ হওয়ার সময় * সংশোধন করাও সম্ভব। প্রত্যয় যুক্ত করতে, ব্যবহার করুনDataFrame.add_suffix
df.add_suffix('_some_suffix')
A_some_suffix B_some_suffix
0 9 12
1 4 7
2 2 5
3 1 4
এটি ডেটার একটি অনুলিপি ফেরত দেয় । IOW, df
পরিবর্তিত হয় না।
উপসর্গ যোগ করার সাথেও সম্পন্ন করা হয় DataFrame.add_prefix
।
df.add_prefix('some_prefix_')
some_prefix_A some_prefix_B
0 9 12
1 4 7
2 2 5
3 1 4
যা পরিবর্তনও করে না df
।
add_*fix
আপনি পদ্ধতি শৃঙ্খলা সম্পাদনের চেষ্টা করতে পারলে এগুলি ভাল পদ্ধতি:
df.some_method1().some_method2().add_*fix(...)
তবে, add_prefix
(এবং add_suffix
) শিরোনামগুলি সংশোধন করার জন্য পুরো ডেটা ফ্রেমের একটি অনুলিপি তৈরি করে । আপনি যদি বিশ্বাস করেন যে এটি অপব্যয়যুক্ত, তবে এখনও শৃঙ্খলাবদ্ধ হতে চান, আপনি কল করতে পারেন pipe
:
def add_suffix(df):
df.columns += '_some_suffix'
return df
df.some_method1().some_method2().pipe(add_suffix)
new
বা old
) থাকে? ধন্যবাদ
df = pd.DataFrame([[1,2,3]]*10)
- উদাহরণস্বরূপ -> df.columns
তবে আপনি ব্যবহার করতে পারেনdf.add_suffix('_x')
df.columns = df.columns.astype(str) + '_x'
আমার প্রথম পদ্ধতির শো হিসাবে করতে পারেন ।
উপরে প্রস্তাবিত এই সমাধানটি আমি দেখতে পাইনি সুতরাং এটি তালিকায় যুক্ত করুন:
df.columns += '_x'
এবং আপনি উপসর্গের দৃশ্যের জন্য খুব সহজেই মানিয়ে নিতে পারেন।
df = pd.DataFrame([[1,2,3]]*10)
- উদাহরণস্বরূপ -> df.columns
তবে আপনি ব্যবহার করতে পারেনdf.add_suffix('_x')
আপনার কলামের নামগুলিতে প্রত্যয় (বা উপসর্গ) যুক্ত করার 4 টি উপায় আমি জানি:
1- df.columns = [str(col) + '_some_suffix' for col in df.columns]
বা
2- df.rename(columns= lambda col: col+'_some_suffix')
বা
3- df.columns += '_some_suffix'
অনেক ইজিয়ার
বা, সবচেয়ে ভাল:
3- df.add_suffix('_some_suffix')
DataFrame.rename
।অবচয় add_prefix
এবংadd_suffix
পান্ডাস ভবিষ্যত সংস্করণে add_prefix
এবং add_suffix
করা হবে অবচিত । নতুন পরামর্শ দেওয়া পদ্ধতিটি হ'ল DataFrame.rename
:
df = pd.DataFrame({'A': range(3), 'B': range(4, 7)})
print(df)
A B
0 0 4
1 1 5
2 2 6
স্ট্রিং ফর্ম্যাটিং rename
সহ axis=1
এবং ব্যবহার করে :
df.rename('col_{}'.format, axis=1)
# or df.rename(columns='col_{}'.format)
col_A col_B
0 0 4
1 1 5
2 2 6
প্রকৃতপক্ষে আপনার কলামের নামগুলি ওভাররাইট করতে, আমরা প্রত্যাবর্তিত মানগুলি আমাদের df
:
df = df.rename('col_{}'.format, axis=1)
বা ব্যবহার করুন inplace=True
:
df.rename('col_{}'.format, axis=1, inplace=True)