如何使用python从数据框创建多个Pandas时间序列?

时间:2015-10-17 08:07:36

标签: python pandas time-series dataframe

我从一个看起来像这样的Pandas数据框开始:

  Type Date Number
1 A x y
2 B x y
3 A x y
4 B x y
5 A x y

我想分别为A类数据和B类数据创建单独的时间序列。这样做最有效的方法是什么?

我正在考虑从中创建两个不同的数据帧,其中每个数据仅来自一种类型的数据,然后将每个单独的数据帧转换为一系列。但是我不知道怎么做。

扩展问题:如果你甚至不知道有多少种类型,有没有办法做到这一点?

到目前为止,我尝试通过使用df [“type”] == A来检查类型是否属于我想要的类型,并且这并没有给我一个完整的数据框,只返回一个数据框,说是否类型是真还是假。

其他信息:

我的目标是分别使用A类和B类的日期和数字数据创建单独的pandas时间序列。

我尝试了以下内容:

df.groupBy(“Type”)。apply(lambda x:x.Date)

上述功能有效但只返回一列。

df.groupBy(“Type”)。apply(lambda x:(x.Date,x.Number))

上述功能不起作用,返回的内容根本不是我想要的。

预期产出:

键入
A x y
x y
B x y
X Y

1 个答案:

答案 0 :(得分:1)

如果您想按类型对日期进行分组并将它们放入单独的系列中,您可以执行以下操作。

按类型分组: grouped = df.groupby('Type')

从每个组中获取日期: dates = grouped.apply(lambda x:x.Date)

dates现在看起来像这样:

Type   
A     1    x
      3    x
      5    x
B     2    x
      4    x

您可以按类型名称访问Series:dates.A, dates.B

  

到目前为止,我尝试使用df [" type"] == A来检查类型是否属于我想要的类型,这并没有给我一个完整的数据帧只是一个数据框,说明类型是真还是假。

df["type"] == A为您提供一个布尔掩码,您可以将其插回数据帧:df[df["type"] == A] 但这是一个非常基本的熊猫操作,看看官方教程,有很多例子:http://pandas.pydata.org/pandas-docs/stable/tutorials.html