जैसा कि पहले से ही HYRY द्वारा टिप्पणियों में सुझाया गया है , Series.map यहां जाने का तरीका है। बस परिणामी श्रृंखला के लिए सूचकांक सेट करें।
सरल उदाहरण:
df = pd.DataFrame({'d': [1, 2, 3]}, index=['FOO', 'BAR', 'BAZ'])
df
d
FOO 1
BAR 2
BAZ 3
df.index = df.index.map(str.lower)
df
d
foo 1
bar 2
baz 3
सूचकांक! = श्रृंखला
जैसा कि @OP द्वारा बताया गया है। df.index.map(str.lower)
कॉल एक numpy सरणी देता है। ऐसा इसलिए है क्योंकि डेटाफ्रेम इंडेक्स श्रृंखला के नहीं, बल्कि खस्ता सरणियों पर आधारित हैं ।
इंडेक्स को सीरीज़ में बनाने का एकमात्र तरीका इससे एक सीरीज़ बनाना है।
pd.Series(df.index.map(str.lower))
चेतावनी
Index
वर्ग अब उपवर्गों StringAccessorMixin
, जिसका अर्थ है कि आप ऊपर आपरेशन के रूप में निम्नानुसार कर सकते हैं
df.index.str.lower()
यह अभी भी एक श्रृंखला नहीं बल्कि एक सूचकांक वस्तु का उत्पादन करता है।
df.index.map(foo)
काम करता है ?