熊猫将csv文件值读取为文本而无需先转换为浮点

时间:2019-10-10 09:22:02

标签: python pandas dataframe

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

1,2,3.4,5,6.2

问题是int值更改为浮点数(我知道这是因为float将是更通用的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)pd.read_csv('filename.csv',dtype=object),结果导致将它们更改为浮点数,然后改为str:

  value
0  1.0
1  2.0
2  3.4
3  5.0
4  6.2

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

  value
0     1
1     2
2   3.4
3     5
4   6.2

2 个答案:

答案 0 :(得分:0)

这是我的测试CSV(untitled.csv):

  

a,1

     

b,2

     

c,3.4

     

d,5

     

e,6.2

使用以下代码num,我获得:

enter image description here

答案 1 :(得分:0)

使用

例如。

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