【问题标题】:How can I find a pattern in a DataSeries with Pandas? [closed]如何使用 Pandas 在 DataSeries 中找到模式? [关闭]
【发布时间】:2018-02-03 20:29:00
【问题描述】:

我有这个数据系列

df = pd.DataFrame({'Values': [0, 1, 2, 3, 4]},
                  index = [pd.Timestamp('20130101 09:00:00'),
                           pd.Timestamp('20130101 09:00:02'),
                           pd.Timestamp('20130101 09:00:03'),
                           pd.Timestamp('20130101 09:00:05'),
                           pd.Timestamp('20130101 09:00:06')])

我必须在我的数据系列中找到这种模式

pattern = [1,2,3]

所以,它必须返回给我(例如):

20130101 09:00:02   1
20130101 09:00:03   2
20130101 09:00:05   3

我正在尝试使用 Pandas 来做到这一点。

【问题讨论】:

  • 你能证明自己任何努力解决这个问题吗?
  • “找到模式”的含义并不完全清楚。例如df.iloc[pattern]['Values'] 会返回您正在寻找的答案,但我猜这不是您想要做的。您能否提供更多关于您希望如何识别模式的信息?
  • iloc 是否适用于浮点数?

标签: python pandas machine-learning


【解决方案1】:
import pandas as pd
df = pd.DataFrame({'Values': [0, 1, 2, 3, 4]},
                  index = [pd.Timestamp('20130101 09:00:00'),
                           pd.Timestamp('20130101 09:00:02'),
                           pd.Timestamp('20130101 09:00:03'),
                           pd.Timestamp('20130101 09:00:05'),
                           pd.Timestamp('20130101 09:00:06')])
pattern = [1,2,3]
print df.iloc[[int(df.index.get_indexer_for((df[df.Values==i].index))) for i in pattern]]

【讨论】:

  • 它返回给我“无效的 sintax”
  • 你能分享一下确切的错误信息吗? (它在 python 2.7 上运行良好)
  • 语法错误:语法无效
  • 在哪一行?请复制完整的错误转储并将其粘贴到此处。 (顺便说一句 - 如果您使用的是 python 3.x,则 print 语句将更改为 print(df.iloc...)
猜你喜欢
  • 2017-09-11
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
相关资源
最近更新 更多