用Python中的'str'和nan值对数据帧进行子集设置

2024-09-30 22:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,使用Data = pandas.read_csv从.csv文件中提取

数据框的一列是日期,例如'14/09/2015',数据类型是str。你知道吗

我需要创建一个子集,我使用:NewDataFrame = DataFrame['DatesColumn'][DataFrame['DatesColumn']==desired date]

但我有两个主要问题:

  1. 因为日期是字符串,所以我尝试使用切片[-1]。但是我得到了一个错误:KeyError : -1L

我尝试使用此代码选择2014:

NewDataFrame = DataFrame['DatesColumn'][DataFrame['DatesColumn'][-1]==4]

  1. 我有空字段,这些字段已作为nan值导入。如果我尝试执行for循环来转换数据,我会得到以下错误:

TypeError: 'float' object has no attribute '__getitem__'

Q:我如何按年度对数据进行子集划分(或清理)?

非常感谢。你知道吗


Tags: 文件csv数据dataframepandasreaddatadate
1条回答
网友
1楼 · 发布于 2024-09-30 22:19:58

对于NaN值,可以使用^{}。你知道吗

# to fill NaNs with zeros
noNans = withNans.fillna(0)

至于日期问题, 与其自己处理日期字符串,不如让 现有的库为您处理它们。在本例中,read_csv()函数 我可以帮你。 请参阅文档 here。你知道吗

下面是一个小例子:

Csv文件:

1,14/09/2016,dataa
1,14/09/2015,dataa
2,14/10/2014,dataa2

代码:

import pandas as pd
from datetime import date

df = pd.read_csv("test.csv", header=None, parse_dates=[1])
df[df[1] > date.today()]

仅打印

   0          1      2
0  1 2016-09-14  dataa

相关问题 更多 >