读取 csv 文件时更改列格式
Change columns format when reading in csv file
我有这个 csv 文件(名为 df.csv
):
我是用这段代码读的:
import pandas as pd
df = pd.read_csv('df.csv')
然后我使用以下代码将其打印出来:
print(df)
打印输出如下所示:
employment_type ltv
0
1
2 Salaried 77.13
3 Salaried 77.4
4 Salaried 76.42
5 Salaried 71.89
如您所见,前两条记录为空。
我用这段代码检查数据帧信息:
print(df.info())
输出如下所示:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 employment_type 6 non-null object
1 ltv 6 non-null object
现在,我希望:
employment_type
会被作为对象读入(这符合我的期望)
ltv
会被读取为 float
我猜这两个字段都被作为对象读入的原因是因为第一个空记录,对吗?
虽然我很高兴 employment_type
可以作为对象读入,但我如何才能将 ltv
字段作为数字读入?
我不想在读入文件后修改格式。我需要找到一种在读入文件时自动分配正确格式的方法:我将不得不读入一些包含数百列的类似文件,我无法手动为每一列分配正确的格式。
我猜两个字段都被作为对象读入的原因是因为第一个空记录,对吗?
是的,pandas 非常擅长推断数据类型,空单元格不能是 int 或 float。
要解决您的问题,只需删除这些空行(使用 dropna),然后您就可以编写
df['ltv']=df['ltv'].astype(float)
我有这个 csv 文件(名为 df.csv
):
我是用这段代码读的:
import pandas as pd
df = pd.read_csv('df.csv')
然后我使用以下代码将其打印出来:
print(df)
打印输出如下所示:
employment_type ltv
0
1
2 Salaried 77.13
3 Salaried 77.4
4 Salaried 76.42
5 Salaried 71.89
如您所见,前两条记录为空。 我用这段代码检查数据帧信息:
print(df.info())
输出如下所示:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 employment_type 6 non-null object
1 ltv 6 non-null object
现在,我希望:
employment_type
会被作为对象读入(这符合我的期望)ltv
会被读取为 float
我猜这两个字段都被作为对象读入的原因是因为第一个空记录,对吗?
虽然我很高兴 employment_type
可以作为对象读入,但我如何才能将 ltv
字段作为数字读入?
我不想在读入文件后修改格式。我需要找到一种在读入文件时自动分配正确格式的方法:我将不得不读入一些包含数百列的类似文件,我无法手动为每一列分配正确的格式。
我猜两个字段都被作为对象读入的原因是因为第一个空记录,对吗?
是的,pandas 非常擅长推断数据类型,空单元格不能是 int 或 float。
要解决您的问题,只需删除这些空行(使用 dropna),然后您就可以编写
df['ltv']=df['ltv'].astype(float)