使用Pandas在CSV文件中编辑数据

时间:2015-02-02 10:16:18

标签: python csv pandas dataframe

我有一个包含以下数据的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,但如果不删除第二个小数点则无法继续。我无法手动执行此操作,因为我的文件中有数千个数据点。任何想法?

1 个答案:

答案 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)