我有一个数据框,其中特定列的大小写不一致,我想让它保持一致:
In [1]: df = pd.DataFrame({"vals":["alpha","Beta","GAMMA"]})
In [2]: df
Out[2]:
vals
0 alpha
1 Beta
2 GAMMA
是否有一种简单的、符合Python风格的方法,可以用字符串str
的str.upper()
替换每个值?
df['vals'] = map(lambda x: x.upper(), df['vals'])
或者甚至:
df['vals'] = df['vals'].apply(lambda x: x.upper())
提示:在最近的版本中,您还可以:
df['vals'] = df['vals'].str.upper()
你可以做以下操作:
df['vals'] = df['vals'].apply(lambda x: x.upper())
您可以直接在数据框中进行就地更改:
df["vals"].apply(lambda x: x.upper())
这里的.upper()
适用于元素类型为str
或unicode
。
inplace=True
,因为它不存在。这个可行。 - vy32
/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/ipykernel/__main__.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy if __name__ == '__main__':```
- vy32