float64如何用连字符表示?

0 投票
1 回答
56 浏览
提问于 2025-04-14 16:44

我是新手。

我正在尝试在Python中处理这个数据集:https://r2.datahub.io/clt98khox0004ia08zwe4vaqt/master/raw/data/co2-mm-gl.csv

我用pandas的read_csv导入了数据。然后我用dtypes查看了每一列的格式,发现第一列“Date”的数据类型是float64,这让我觉得很奇怪,因为这一列的值是以年-月的格式显示的,比如“1979-01”。

一个float64类型的值怎么会有这样的连字符呢?感谢大家的见解。

我首先尝试用以下代码处理“Date”列:

df['Year'] = df['Date'].str[:4]

结果出现了一个错误:AttributeError: Can only use .str accessor with string values! 我明白这是因为它是float64类型。但它怎么会是float64呢?

1 个回答

1

你的CSV文件只有4个标题,但有6列数据:

Date,Decimal Date,Average,Trend
1979-01,1979.042,336.56,0.11,335.92,0.09
1979-02,1979.125,337.29,0.09,336.25,0.10
...

当你导入这个文件时,Pandas会把前两列的名字留空:

                    Date  Decimal Date  Average  Trend
1979-01 1979.042  336.56          0.11   335.92   0.09
1979-02 1979.125  337.29          0.09   336.25   0.10
...

你可以编辑这个CSV文件,为最后两列添加两个列名:

Date,Decimal Date,Average,Trend,Value1,Value2
1979-01,1979.042,336.56,0.11,335.92,0.09
1979-02,1979.125,337.29,0.09,336.25,0.10
...

这样导入后就会变成:

      Date  Decimal Date  Average  Trend  Value1  Value2
0  1979-01      1979.042   336.56   0.11  335.92    0.09
1  1979-02      1979.125   337.29   0.09  336.25    0.10
...

撰写回答