我有一个包含以下数据的CSV文件:
Time Pressure
0 2.9852.988
10 2.9882.988
20 2.9902.990
30 2.9882.988
40 2.9852.985
50 2.9842.984
60 2.9852.985.....
由于某种原因,第二列用2个小数点分隔。我正在尝试使用pandas创建一个dataFrame,但如果不删除第二个小数点则无法继续。我无法手动执行此操作,因为我的文件中有数千个数据点。任何想法?
答案 0 :(得分:2)
你可以调用vectorised str
方法来分割小数点上的字符串,加入split的结果但丢弃最后一个元素,这会产生一个列表[2,9852]
然后你加入一个小数点:
In [28]:
df['Pressure'].str.split('.').str[:-1].str.join('.')
Out[28]:
0 2.9852
1 2.9882
2 2.9902
3 2.9882
4 2.9852
5 2.9842
6 2.9852
Name: Pressure, dtype: object
如果要将字符串转换为浮点数,请调用astype
:
In [29]:
df['Pressure'].str.split('.').str[:-1].str.join('.').astype(np.float64)
Out[29]:
0 2.9852
1 2.9882
2 2.9902
3 2.9882
4 2.9852
5 2.9842
6 2.9852
Name: Pressure, dtype: float64
请记住将转换分配回原始df:
df['Pressure'] = df['Pressure'].str.split('.').str[:-1].str.join('.').astype(np.float64)