pd.read_csv() 不适用于 parse_dates

问题描述 投票:0回答:2

我正在使用 Netflix 电影和电视节目数据集来更好地理解 pandas。

date_added的格式为:“2024年9月21日”,据我了解,它将被解析为“%B-%d-%Y”。简单地使用 pd.read_csv() 读取会将此列返回为 object 类型。

使用

parse_dates=['date_added']
似乎不起作用,也没有指定格式。这是我的代码:

df = pd.read_csv('netflix_titles.csv', parse_dates=['date_added'], date_format='%B-%d-%Y')
df.info()

导致:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8807 entries, 0 to 8806
Data columns (total 12 columns):
 #   Column        Non-Null Count  Dtype 
---  ------        --------------  ----- 
 0   show_id       8807 non-null   object
 1   type          8807 non-null   object
 2   title         8807 non-null   object
 3   director      6173 non-null   object
 4   cast          7982 non-null   object
 5   country       7976 non-null   object
 6   date_added    8797 non-null   object
 7   release_year  8807 non-null   int64 
 8   rating        8803 non-null   object
 9   duration      8804 non-null   object
 10  listed_in     8807 non-null   object
 11  description   8807 non-null   object
dtypes: int64(1), object(11)
memory usage: 825.8+ KB

我做错了什么?

python pandas
2个回答
0
投票

问题在于

date_format
论证。您指定了
%B-%d-%Y
,这将是
September-21-2024
,但您需要指定
%B %d, %Y

您实际上可以完全删除

date_format
,因为
parse_dates
会为您推断格式,因为该列已经采用标准格式。通常,如果您的日期不是标准格式,则只需指定日期格式。

您的代码应如下所示:

df = pd.read_csv('netflix_titles.csv', parse_dates=['date_added'], date_format='%B %d, %Y')

df = pd.read_csv('netflix_titles.csv', parse_dates=['date_added'])

0
投票

试试这个

df = pd.read_csv('netflix_titles.csv') df['date_added'] = pd.to_datetime(df['date_added'], format='%B %d, %Y', error='coerce')

df.info()

© www.soinside.com 2019 - 2024. All rights reserved.