首页 > 解决方案 > Pandas 将 csv 文件值作为文本读取,而不首先转换为浮点数

问题描述

我正在将 csv 文件中的数据加载到 pandas 数据框中,csv 文件中的列包含以下值:

1,2,3.4,5,6.2

问题是 int 值被更改为浮点数(我知道这是因为浮点数将是更通用的 dtype),所以它被读作:

df
   value
0    1.0
1    2.0
2    3.4
3    5.0
4    6.2

我需要将 csv 文件中的所有值作为字符串获取。

我尝试使用pd.read_csv('filename.csv',dtype=str)or pd.read_csv('filename.csv',dtype=object),结果将它们更改为浮点数然后 str :

  value
0  1.0
1  2.0
2  3.4
3  5.0
4  6.2

有没有办法按原样阅读它们?IE:

  value
0     1
1     2
2   3.4
3     5
4   6.2

标签: pythonpandasdataframe

解决方案


利用

前任。

import pandas as pd
from io import StringIO

# csv file contain single text row value 
csv1 = StringIO("""1,2,3.4,5,6.2""")
# csv1 replace with csv file name eg. 'filename.csv'
df = (pd.read_csv(csv1,dtype=str,header=None)).T.rename(columns={0:'value'})
print(df)
   value
0     1
1     2
2   3.4
3     5
4   6.2


# csv file contain multiple text row value 
csv2 = StringIO("""1
2
3.4
5
6.2""")
# csv2 replace with csv file name eg. 'filename.csv'
df1 = pd.read_csv(csv2,dtype=str,header=None,names=['value'])
print(df1)
  value
0     1
1     2
2   3.4
3     5
4   6.2

推荐阅读