एक अन्य संभावित समाधान, यदि स्तंभ में न केवल तार हैं, बल्कि संख्याएँ भी हैं, क्योंकि इसका उपयोग करना है astype(str).str.lower()
या to_string(na_rep='')
क्योंकि अन्यथा, यह देखते हुए कि कोई संख्या एक स्ट्रिंग नहीं है, जब इसे कम किया जाएगा NaN
, इसलिए:
import pandas as pd
import numpy as np
df=pd.DataFrame(['ONE','Two', np.nan,2],columns=['x'])
xSecureLower = df['x'].to_string(na_rep='').lower()
xLower = df['x'].str.lower()
तो हमारे पास हैं:
>>> xSecureLower
0 one
1 two
2
3 2
Name: x, dtype: object
और नहीं
>>> xLower
0 one
1 two
2 NaN
3 NaN
Name: x, dtype: object
संपादित करें:
यदि आप NaN खोना नहीं चाहते हैं, तो मानचित्र का उपयोग करना बेहतर होगा, (@ wojciech-walczak, और @ cs95 टिप्पणी से) यह कुछ इस तरह दिखेगा
xSecureLower = df['x'].map(lambda x: x.lower() if isinstance(x,str) else x)
str.casefold
और अधिक आक्रामक मामले तह स्ट्रिंग तुलना के लिए सलाह देता हूं । इस उत्तर में अधिक जानकारी ।