मैं _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')
जैसा कि यह एक फ़ंक्शन है जिसे DataFrame पर कॉल किया जाता है और DataFrame लौटाता है - आप कॉल की श्रृंखला में इसका उपयोग कर सकते हैं।
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
प्रारूपण के साथ सूची समझ का उपयोग कर रहा है (python3.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)