Python 熊猫:为什么csv列中的浮点数据有时在导入后成为对象?

Python 熊猫:为什么csv列中的浮点数据有时在导入后成为对象?,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我有两个csv文件,列相同,但数据不同。将它们导入pandas后,其中一个中的cost列的数据类型为float,而另一个中的object 我发现了一个,在这种情况下,答案是“这是一个错误,我有点困惑。您说您有两个CSV文件,但我看不到CSV文件的内容,只看到导入后生成的序列。所以很难弄清楚到底发生了什么。其中一行中是否有空白字段、nan、未定义或其他字符串?这可能会帮助您找到问题行。thx Tom。没有nan、空白或其他字符串。很抱歉,由于数据敏感,我无法上载csv文件。但是我上传了更多的信息。

我有两个csv文件,列相同,但数据不同。将它们导入pandas后,其中一个中的
cost
列的数据类型为
float
,而另一个中的
object


我发现了一个,在这种情况下,答案是“这是一个错误,我有点困惑。您说您有两个CSV文件,但我看不到CSV文件的内容,只看到导入后生成的序列。所以很难弄清楚到底发生了什么。其中一行中是否有空白字段、nan、未定义或其他字符串?这可能会帮助您找到问题行。thx Tom。没有nan、空白或其他字符串。很抱歉,由于数据敏感,我无法上载csv文件。但是我上传了更多的信息。希望他们能有所帮助。再次感谢。在您的第一个代码段中,您得到了不受支持的操作数错误,该错误意味着“cost”列在其中一行中有一个字符串。在第二个代码段中,您将写出中间数据帧,当读回该数据帧时,将导致“cost”列不再包含字符串。所以我又回到了试图找出“坏”数据的位置。更糟糕的情况是,你可以把文件切成两半,然后试着每一半看看它是否有效。继续这样的二进制搜索,直到您分离出导致问题的行。Tom:),谢谢您宝贵的想法。
# csv 1: before pd.to_numeric
count     174526
unique     84873
top         0.41
freq         505
Name: cost, dtype: object

# csv 1: after pd.to_numeric
count    1.745260e+05
mean     3.608746e+04
std      4.690326e+05
min      1.000000e-02
25%      1.040000e+01
50%      1.190400e+02
75%      1.433350e+03
max      5.400000e+07
Name: cost, dtype: float64

# csv 2: 
count    2.578860e+05
mean     1.588632e+04
std      3.295925e+05
min      1.000000e-02
25%      2.820000e+00
50%      2.109000e+01
75%      2.426200e+02
max      6.030000e+07
Name: cost, dtype: float64
df = pd.read_csv('file_name.csv',low_memory=False)
df = df[df.Cloumn1 != 'Value1']
df.to_csv('new_file_name.csv', index=False)

df = pd.read_csv('new_file_name.csv', low_memory=False)
df['cost_T'] = df['cost'] / 1000
df.to_csv('final_file_name.csv', index=False)
"""
everything is fine.
"""