pandas数据帧中的示例数据:
df['Revenue']
0 $0.00
1 $12,982,681.00
2 NaN
3 $10,150,623.00
4 NaN
...
1713 NaN
1714 NaN
1715 NaN
1716 NaN
1717 NaN
Name: Revenue, Length: 1718, dtype: object
我需要将列从货币格式更改为整数,以便运行计算和聚合。
# Fix format currency
if df['Revenue'].dtype == 'object':
df['Revenue'] = df['Revenue'].apply(lambda x: x.replace('$','')).apply(lambda x: x.replace(',','')).astype(np.int64)
当我运行上面的代码行来转换数据类型时,我会遇到以下错误:
3 # Fix format currency
4 if df['Revenue'].dtype == 'object':
5 df['Revenue'] = df['Revenue'].apply(lambda x: x.replace('$','')).apply(lambda x: x.replace(',','')).astype(np.int64)
AttributeError: 'float' object has no attribute 'replace'
您可以尝试替换除数字和句点之外的所有内容。如果您正在以csv的形式读取文件,则可以在读取阶段对其进行控制。
df['Revenue'].fillna(0).astype(str).replace('[^0-9.]','', regex=True).str.split('.').str[0].astype(int)
Revenue
0 0
1 12982681
2 0
3 10150623
4 0
1713 0
1714 0
1715 0
1716 0
1717 0