熊猫groupby日期时间和列然后应用生成ValueError

Jinhua Wang

我试图对数据框进行分组,然后将一个函数应用于数据框的每一行:

df=pd.read_csv('stack.csv')
df['TIME_M']=pd.to_datetime(df['TIME_M'],format='%Y%m%d %H:%M:%S.%f')
df.groupby(['SYM_ROOT',df['TIME_M'].dt.date]).apply(group_increment_to_end)

def group_increment_to_end(x):
    return x.iloc[0:1]

SYM_ROOT是类别变量,TIME_M而是日期时间变量。

但是,我不断收到以下错误:

ValueError: Key 2017-01-03 00:00:00 not in level Index([2017-01-03], dtype='object', name=u'TIME_M')

您知道问题的原因是什么吗?是否因为不能将iloc应用于具有多个索引的函数?如果我想遍历行并使用该group_increment_to_end函数添加行怎么办,如果我不能使用iloc函数,该怎么办?

更新:

数据集可在此处下载

| SYM_ROOT | TIME_M                     | BEST_BID | BEST_ASK | increment | genjud_incre | 
|----------|----------------------------|----------|----------|-----------|--------------| 
| A        | 2017-01-03 09:30:00.004712 | 45.91    | 46.12    | 0         | 4680         | 
| AA       | 2017-01-03 09:30:00.004014 | 28.55    | 28.57    | 0         | 4680         | 
Jinhua Wang

感谢@ min2bro,我想我知道了答案。

问题在于df['TIME_M'].dt.date,这是一个有日期和无效时间的对象2017-01-03 00:00:00但是,按此对象分组会返回错误,因为熊猫在解析列时无法正确识别日期对象。

正确的方法是将日期单独作为一列分开,然后按该对象分组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫groupby应用日期时间异常

熊猫移位和推断日期时间列

熊猫合并日期和时间列

熊猫groupby日期时间,获取数量和价格

熊猫groupby一周给出了日期时间列

通过日期时间和日期列合并熊猫数据框

熊猫日期时间生成格式

熊猫-应用日期时间函数

熊猫-日期时间格式不匹配的ValueError

基于日期时间索引和列的熊猫回填值

在熊猫中连接日期和时间列时出错

熊猫的性能问题和日期时间列过滤

带有日期和时间的熊猫列-如何排序?

将日期时间列拆分为熊猫中的日期和时间列

链接groupby和应用熊猫

在熊猫的日期时间列的日期级别上进行groupby聚合

使用Groupby对行进行分组,并转换开始日期时间和结束日期时间列的日期和时间

排序日期时间列熊猫

如何将数据框的日期和时间列转换为熊猫的日期时间格式?

熊猫:直接从“日期时间”列返回时间

Groupby - 按顺序生成日期时间

熊猫用第二列将逗号分隔,然后使用groupby和sum

熊猫:如何生成新列以获取另一列的上次日期时间值

根据日期时间和大熊猫今天的日期创建一个新列

熊猫中日期时间值列中的混合日期和月份

如何在导入的Excel列中使用熊猫和日期时间计算重复日期的数量?

熊猫:生成时间序列日期时间特征

熊猫数据框应用于日期时间列:不起作用

在熊猫数据框中将datetime64列拆分为日期和时间列