我创建了一个Series
从DataFrame
,当我重新采样一些数据,象这样一个数:其中H2
是DataFrame
:
H3=H2[['SOLD_PRICE']]
H5=H3.resample('Q',how='count')
H6=pd.rolling_mean(H5,4)
这产生了一个看起来像这样的系列:
1999-03-31 SOLD_PRICE NaN
1999-06-30 SOLD_PRICE NaN
1999-09-30 SOLD_PRICE NaN
1999-12-31 SOLD_PRICE 3.00
2000-03-31 SOLD_PRICE 3.00
索引看起来像:
MultiIndex
[(1999-03-31 00:00:00, u'SOLD_PRICE'), (1999-06-30 00:00:00, u'SOLD_PRICE'), (1999-09-30 00:00:00, u'SOLD_PRICE'), (1999-12-31 00:00:00, u'SOLD_PRICE'),.....
我不希望第二列作为索引。理想情况下,我将第DataFrame
1列作为“日期”,将第2列作为“销售”(删除索引的第二层)。我不太清楚如何重新配置索引。
只需致电reset_index()
:
In [130]: s
Out[130]:
0 1
1999-03-31 SOLD_PRICE NaN
1999-06-30 SOLD_PRICE NaN
1999-09-30 SOLD_PRICE NaN
1999-12-31 SOLD_PRICE 3
2000-03-31 SOLD_PRICE 3
Name: 2, dtype: float64
In [131]: s.reset_index()
Out[131]:
0 1 2
0 1999-03-31 SOLD_PRICE NaN
1 1999-06-30 SOLD_PRICE NaN
2 1999-09-30 SOLD_PRICE NaN
3 1999-12-31 SOLD_PRICE 3
4 2000-03-31 SOLD_PRICE 3
有多种删除列的方法:
调用reset_index()
两次并指定一列:
In [136]: s.reset_index(0).reset_index(drop=True)
Out[136]:
0 2
0 1999-03-31 NaN
1 1999-06-30 NaN
2 1999-09-30 NaN
3 1999-12-31 3
4 2000-03-31 3
重置索引后删除列:
In [137]: df = s.reset_index()
In [138]: df
Out[138]:
0 1 2
0 1999-03-31 SOLD_PRICE NaN
1 1999-06-30 SOLD_PRICE NaN
2 1999-09-30 SOLD_PRICE NaN
3 1999-12-31 SOLD_PRICE 3
4 2000-03-31 SOLD_PRICE 3
In [139]: del df[1]
In [140]: df
Out[140]:
0 2
0 1999-03-31 NaN
1 1999-06-30 NaN
2 1999-09-30 NaN
3 1999-12-31 3
4 2000-03-31 3
drop()
重置后致电:
In [144]: s.reset_index().drop(1, axis=1)
Out[144]:
0 2
0 1999-03-31 NaN
1 1999-06-30 NaN
2 1999-09-30 NaN
3 1999-12-31 3
4 2000-03-31 3
然后,在重置索引后,只需重命名列
In [146]: df.columns = ['Date', 'Sales']
In [147]: df
Out[147]:
Date Sales
0 1999-03-31 NaN
1 1999-06-30 NaN
2 1999-09-30 NaN
3 1999-12-31 3
4 2000-03-31 3
问题内容: 我这样制作数据框。 我想通过使用一些熊猫方法将索引转换为此(例如set_index,stack 、、) 我怎样才能做到这一点? 问题答案: 我认为你需要与重塑,然后交换在水平由列由去年的排序列: 用另一种解决方案和:
问题内容: 我正在尝试使用pandas创建一个,但是当我将数据导出到它时,我得到了一个额外的列 因此,我的结果是: 但是,预期结果是: 问题答案: 您所看到的是索引列。刚刚设置:
如果我有一个多级列索引: 我如何才能降低该指数的“a”级,因此我最终得到:
问题内容: 不知道这里出了什么问题…我想要的只是本系列中的第一个也是唯一的元素 为什么这样不起作用?以及如何获得第一个元素? 问题答案: 当索引为整数时,您将无法使用位置索引器,因为选择将是模棱两可的(应基于标签还是位置返回?)。您需要明确使用 或传递标签。 由于索引类型是对象,因此可以进行以下操作: 但是对于整数索引,情况有所不同:
我开始学习熊猫,发现了一个我似乎无法解决的问题。我正在从csv文件加载数据,需要删除一些与几个字符串匹配的行。 CSV: 我所尝试的: 但我得到的错误如下: 我错过了什么?另外,如果我想传递一个列表并从列表中删除所有匹配字符串的行,该怎么办?例子: