Fey*_*rov 13 python string lowercase pandas
我有一个包含域名的数据:
url var1
www.CNN.com xsd
www.Nbc.com wer
www.BBc.com xyz
www.fOX.com zyx
....
Run Code Online (Sandbox Code Playgroud)
数据属于Series类型.我使用以下内容将url变量转换为小写:
df.apply(lambda x: x.astype(str).str.lower())
Run Code Online (Sandbox Code Playgroud)
但是,它们保持不变.
我究竟做错了什么?
Dav*_*vid 20
df['url'] = df['url'].str.lower()
Run Code Online (Sandbox Code Playgroud)
应该对系列进行操作并将其替换为小写版本.
我认为您需要重新分配输出,apply如果仅适用于列,则最好省略url:
df = pd.DataFrame({'url': ['www.CNN.com', 'www.Nbc.com', 'www.BBc.com', 'www.fOX.com'],
'var1': ['XSD', 'wer', 'xyz', 'zyx']})
print (df)
url var1
0 www.CNN.com XSD
1 www.Nbc.com wer
2 www.BBc.com xyz
3 www.fOX.com zyx
#if types of column is str, astype is not necessary
df.url = df.url.astype(str).str.lower()
print (df)
url var1
0 www.cnn.com XSD
1 www.nbc.com wer
2 www.bbc.com xyz
3 www.fox.com zyx
Run Code Online (Sandbox Code Playgroud)
但如果需要将所有列转换df为lowercase strings:
df = df.astype(str).apply(lambda x: x.str.lower())
print (df)
url var1
0 www.cnn.com xsd
1 www.nbc.com wer
2 www.bbc.com xyz
3 www.fox.com zyx
Run Code Online (Sandbox Code Playgroud)
要转换我们可以使用的单个列,
df.column_name.str.lower()
Run Code Online (Sandbox Code Playgroud)
或者
df['column_name'].str.lower()
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 !