相关疑难解决方法(0)

使用pandas读取带有时间戳列的csv

做的时候:

import pandas
x = pandas.read_csv('data.csv', parse_dates=True, index_col='DateTime', 
                                names=['DateTime', 'X'], header=None, sep=';')
Run Code Online (Sandbox Code Playgroud)

用这个data.csv文件:

1449054136.83;15.31
1449054137.43;16.19
1449054138.04;19.22
1449054138.65;15.12
1449054139.25;13.12
Run Code Online (Sandbox Code Playgroud)

(第一列是UNIX时间戳,即自1970年1月1日起经过的秒数),每15秒重新采样数据时出现此错误x.resample('15S'):

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex
Run Code Online (Sandbox Code Playgroud)

这就像尚未解析的"日期时间"信息:

                 X
DateTime      
1.449054e+09  15.31                
1.449054e+09  16.19
...
Run Code Online (Sandbox Code Playgroud)

如何使用pandas模块导入日期存储为时间戳的.CSV?

然后,一旦我能够导入CSV,如何访问日期> 2015-12-02 12:02:18的行

python csv pandas

22
推荐指数
4
解决办法
4万
查看次数

pandas 通过排除日期范围对 DatetimeIndex 进行过滤

我目前有一个pandas.DataFrame,其中有一个pandas.DatetimeIndex和一组值。

我想从此排除给定的所有日期。pandas.date_rangepandas.DataFrame

示例代码:

dates = pd.date_range(start='04/01/2012', end='04/01/2019', freq='MS')
df = pd.DataFrame(data=[100]*len(dates),index=dates,columns=["val"])

exclusion_dates = pd.date_range(start='04/01/2012', end='04/01/2019', freq=pd.offsets.DateOffset(months=12))
Run Code Online (Sandbox Code Playgroud)

我的尝试:

df.loc[~exclusion_dates,:]
Run Code Online (Sandbox Code Playgroud)

理想情况下,这将导致df包含1st April YYYY

但是,这会导致以下错误:

类型错误:一元 ~ 的操作数类型错误:“DatetimeIndex”

我查看了下面的线程,但是找不到任何内容: Filtering Pandas DataFrames on date

python dataframe pandas

7
推荐指数
1
解决办法
5301
查看次数

Pandas:从 Pandas DataFrame 中选择两个日期之间的所有数据

我有 DataFrame,其中有一列带有事件日期(日期不是唯一的)。我需要选择此期间的所有数据。我接下来尝试:

start_day = datetime.date(datetime.strptime(start_day, '%d.%m.%Y')) #change user data to date format

end_day = datetime.date(datetime.strptime(end_day, '%d.%m.%Y'))

df = df[df['Transaction_date'].between(start_day, end_day)]
Run Code Online (Sandbox Code Playgroud)

列的类型Transaction_datedatetime64[ns]。当我运行请求时间01/01/2020为 to的代码时31/01/2020- 指定时间段的部分数据丢失(信息仅显示 21 天,应该是 31 天)。

我看到数据帧包含整个请求期间的数据。你能帮我吗,我的错误在哪里?

python dataframe pandas

5
推荐指数
1
解决办法
887
查看次数

根据日期拆分数据框

我正在尝试根据日期将数据框分成两个。这已经解决了这里的一个相关问题:Split dataframe into two based on date

我的数据框如下所示:

               abcde     col_b
2008-04-10  0.041913  0.227050
2008-04-11  0.041372  0.228116
2008-04-12  0.040835  0.229199
2008-04-13  0.040300  0.230301
2008-04-14  0.039770  0.231421
Run Code Online (Sandbox Code Playgroud)

我如何根据日期拆分它(比如 2008-04-12 之前和之后)?当我尝试这个时:

df.loc[pd.to_datetime(df.index) <= split_date]
Run Code Online (Sandbox Code Playgroud)

这里split_datedatetime.date(2008-04-12),我得到这个错误:

*** TypeError: <class 'datetime.date'> type object 2008-04-12
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

4
推荐指数
1
解决办法
6993
查看次数

根据“小时”日期时间选择 Pandas 数据框行

我有一个 Pandas 数据框“df”,其中包含一个 datetime.time 类型的“DateTimes”列。

该列的条目是一天的小时数:

00:00:00
.
.
.
23:59:00
Run Code Online (Sandbox Code Playgroud)

秒被跳过,它按分钟计数。

如何按小时选择行,例如 00:00:00 和 00:01:00 之间的行?


如果我试试这个:

df.between_time('00:00:00', '00:00:10')
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,即索引必须是 DateTimeIndex。

我将索引设置为:

df=df.set_index(keys='DateTime')
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误。

我似乎也无法让 'loc' 工作。有什么建议?

python datetime pandas

4
推荐指数
1
解决办法
8011
查看次数

在DataFrame中抓取特定日期之间的选择

所以我有一个大型的pandas DataFrame,它包含大约两个月的信息,每秒有一行信息.方法太多,无法立即处理,所以我想抓住具体的时间表.以下代码将在2012年2月5日之前获取所有内容:

sunflower[sunflower['time'] < '2012-02-05']
Run Code Online (Sandbox Code Playgroud)

我想做相当于这个:

sunflower['2012-02-01' < sunflower['time'] < '2012-02-05']
Run Code Online (Sandbox Code Playgroud)

但这是不允许的.现在我可以用这两行来做到这一点:

step1 = sunflower[sunflower['time'] < '2012-02-05']
data = step1[step1['time'] > '2012-02-01']
Run Code Online (Sandbox Code Playgroud)

但是我必须使用20个不同的DataFrame进行多次,并且能够轻松地做到这一点会很好.我知道pandas是有能力的,因为如果我的日期是索引而不是列,那很容易做到,但它们不能成为索引,因为日期会重复,因此您会收到此错误:

Exception: Reindexing only valid with uniquely valued Index objects
Run Code Online (Sandbox Code Playgroud)

那我该怎么做呢?

python datetime pandas

2
推荐指数
1
解决办法
3070
查看次数

ValueError:索引必须单调递增或递减:添加毫秒

因此,在我将毫秒添加到日期/时间字段之前,我的所有数据都在处理我的数据。

selected = selected['2017-02-20 16:10:05':'2017-02-20 16:20:06']是我过滤数据框的语句**

以下数据在毫秒为 0000 时有效

在此处输入图片说明

正确填充毫秒时出现以下数据错误

在此处输入图片说明

更新:我试过了

selected.sort_index()
selected.ix['2017-02-20 16:10:05':'2017-02-20 16:20:06']
selected.ix[datetime.date(year=2017,month=2,day=20):datetime.date(year=2017,month=2,day=21)] 
Run Code Online (Sandbox Code Playgroud)

类型错误:“str”和“datetime.date”的实例之间不支持“>”

然后我得到以下

ValueError                                Traceback (most recent call last)
/usr/local/lib/python3.6/site-packages/pandas/indexes/base.py in get_slice_bound(self, label, side, kind)
   3121             try:
-> 3122                 return self._searchsorted_monotonic(label, side)
   3123             except ValueError:

/usr/local/lib/python3.6/site-packages/pandas/indexes/base.py in _searchsorted_monotonic(self, label, side)
   3087 
-> 3088         raise ValueError('index must be monotonic increasing or decreasing')
   3089 

ValueError: index must be monotonic increasing or decreasing

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

pandas ×7

python ×7

datetime ×3

dataframe ×2

csv ×1