我在与大熊猫旋转了一点小麻烦。 该dataframe
我工作的样子(日期,地点,数据):
dates location data
date1 A X
date2 A Y
date3 A Z
date1 B XX
date2 B YY
基本上,我试图在转动的位置,就像一个数据帧到结束:
dates A B C
date1 X XX etc...
date2 Y YY
date3 Z ZZ
不幸的是,当我转动,指数,这相当于原来的日期栏,并没有改变,我也得到:
dates A B C
date1 X NA etc...
date2 Y NA
date3 Z NA
date1 NA XX
date2 NA YY
有谁知道我该如何解决这个问题,以获得数据帧甲我在寻找?
我当前调用枢轴这样:
df.pivot(index="dates", columns="location")
因为我有数据列我想转动的#(不想列出每一个作为参数)。 我相信默认轴转动的数据帧列的其余部分。 谢谢。
如果你有多个数据列,调用枢没有值的列应该给你一个多指标作为列的枢轴转动架:
In [3]: df
Out[3]:
columns data1 data2 index
0 a -0.602398 -0.982524 x
1 a 0.880927 0.818551 y
2 b -0.238849 0.766986 z
3 b -1.304346 0.955031 x
4 c -0.094820 0.746046 y
5 c -0.835785 1.123243 z
In [4]: df.pivot('index', 'columns')
Out[4]:
data1 data2
columns a b c a b c
index
x -0.602398 -1.304346 NaN -0.982524 0.955031 NaN
y 0.880927 NaN -0.094820 0.818551 NaN 0.746046
z NaN -0.238849 -0.835785 NaN 0.766986 1.123243
你是如何调用DataFrame.pivot什么数据类型是日期列?
假设我有一个数据帧,它类似于你的,日期列包含datetime对象:
In [52]: df
Out[52]:
data dates loc
0 0.870900 2000-01-01 00:00:00 A
1 0.344999 2000-01-02 00:00:00 A
2 0.001729 2000-01-03 00:00:00 A
3 1.565684 2000-01-01 00:00:00 B
4 -0.851542 2000-01-02 00:00:00 B
In [53]: df.pivot('dates', 'loc', 'data')
Out[53]:
loc A B
dates
2000-01-01 0.870900 1.565684
2000-01-02 0.344999 -0.851542
2000-01-03 0.001729 NaN
只是回答我自己的问题。 我是用旧的Sybase模块导入数据,我认为它曾经从mxDatetime旧DateTimeType对象。 在该模块,2011年1月1日的日期时间并不一定等于2011年1月1日的另一日期时间(例如,每个日期时间是唯一的)。 因此数据帧枢轴处理在指数中,唯一的每一列的值。
谢谢您的帮助。