[英]How to read csv formatted numeric data into Pandas
我有一个csv文件,其中包含两个格式化的列,当前作为对象读入:
包含以“0.01%”字符串形式读入的百分比值。 %总是在最后。
包含以“$ 1234.5”字符串形式读入的货币值。
我已经尝试使用split函数删除数据框内的%或$,然后在split的结果上使用float。 这将打印正确的结果,但不会分配值。 它还给出了一个类型错误,浮动没有拆分函数,即使我在浮点数之前进行拆分????
尝试这个:
import pandas as pd
df = pd.read_csv('data.csv')
"""
The example df looks like this:
col1 col2
0 3.04% $100.25
1 0.15% $1250
2 0.22% $322
3 1.30% $956
4 0.49% $621
"""
df['col1'] = df['col1'].str.split('%', expand=True)[[0]]
df['col2'] = df['col2'].str.split('$', 1, expand=True)[[1]]
df[['col1', 'col2']] = df[['col1', 'col2']].apply(pd.to_numeric)
您可能正在寻找apply方法。
同
df['first_col'] = df['first_col'].apply(lambda x: float(x.strip('%'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.