- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的数据帧的头部
McDonald's Python CSS Microsoft Office day week day
Jour
2017-06-11 87 22 12 31 Sunday 6
2017-06-12 63 38 24 55 Monday 0
2017-06-13 63 41 25 56 Tuesday 1
2017-06-14 73 41 25 55 Wednesday 2
2017-06-15 72 39 24 53 Thursday 3
我对 dataFrame 进行了 groupby 操作,得到:
df_week = df.groupby(["day", "week day"]).mean()
df_week
McDonald's Python CSS Microsoft Office
day week day
Friday 4 76.076923 36.615385 22.384615 51.769231
Monday 0 68.230769 37.000000 22.230769 54.230769
Saturday 5 87.416667 21.500000 11.416667 30.750000
Sunday 6 90.000000 21.615385 11.000000 30.538462
Thursday 3 69.923077 40.076923 24.615385 55.846154
Tuesday 1 66.230769 39.461538 24.153846 57.000000
Wednesday 2 68.923077 40.000000 24.846154 56.538462
然后我使用工作日索引对数据帧进行排序。
df_week.sort_index(level="week day", inplace=True)
最后,数据帧看起来排序良好:
McDonald's Python CSS Microsoft Office
day week day
Monday 0 68.230769 37.000000 22.230769 54.230769
Tuesday 1 66.230769 39.461538 24.153846 57.000000
Wednesday 2 68.923077 40.000000 24.846154 56.538462
Thursday 3 69.923077 40.076923 24.615385 55.846154
Friday 4 76.076923 36.615385 22.384615 51.769231
Saturday 5 87.416667 21.500000 11.416667 30.750000
Sunday 6 90.000000 21.615385 11.000000 30.538462
但是现在,如果我尝试使用索引值,它们仍然没有排序:
print(df_week.index.levels[0])
print(df_week.index.levels[1])
Index(['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuesday',
'Wednesday'],
dtype='object', name='day')
Int64Index([0, 1, 2, 3, 4, 5, 6], dtype='int64', name='week day')
如果我查看整个 MultiIndex
对象,很明显,索引标签和索引行是分开存储的。
MultiIndex(levels=[['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuesday', 'Wednesday'], [0, 1, 2, 3, 4, 5, 6]],
labels=[[1, 5, 6, 4, 0, 2, 3], [0, 1, 2, 3, 4, 5, 6]],
names=['day', 'week day'])
因此,如何才能以正确的顺序访问索引值?
最佳答案
这是因为多索引级别
是一个frozenlist
,它总是看起来是排序的并且它们保存引用。因此,如果您想要顺序,请将它们从卡住列表转换为列表。即,如果您使用 df.index.tolist() ,您可以看到基于数据帧的真实顺序。即
df.index.tolist()
[('Monday', 0),
('Tuesday', 1),
('Wednesday', 2),
('Thursday', 3),
('Friday', 4),
('Saturday', 5),
('Sunday', 6)]
关于python - Pandas 多重索引在 sort_index 方法后未排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159565/
我使用 spark SQLContext 将 JSON 文件加载到数据框中。它存储来自不同用户的推文。它看起来像下面。我在 python 中使用 pandas 库来探索此数据框中的数据。 import
在对 Series 的索引进行排序时,我不明白 key 函数是如何工作的。例如我有这样的系列: (0, 4) k (12, 16) a (24, 28) b (4, 8) f
这是一个 MWE: import pandas as pd pd.np.random.seed(0) ( pd.DataFrame(pd.np.random.rand(10, 5), colu
我有一个带有 datetimeIndex 的数据框: 但是当我尝试使用 sort_index() 对此数据帧进行排序时,所有日期时间列(包括索引)的时间部分都被删除。为什么?我该如何预防? 这是要排序
documentation对于 DataFrame.sort_index 是: DataFrame.sort_index(self, axis=0, level=None, ascending=Tru
我正在尝试使用 Armadillo C++ 库中的 sort_index() 函数 (link here) . 这是我的代码: #include #include using namespace
这是我的数据帧的头部 McDonald's Python CSS Microsoft Office day week day Jour
我有两个数据帧 df1 df2 具有相同的行数和列数以及变量,我正在尝试比较 boolean 变量 choice 在两个数据框中。然后使用if/else 来操作数据。但是当我尝试比较 boolean
Python Pandas 提供了两种对 DataFrame 进行排序的方法: sort_values (或已弃用 sort ) sort_index 这两种方法有什么区别? 最佳答案 由于问题已更新
我不明白为什么在下面的代码中取消注释 ts = ts.sort_index() 会抛出 ErrorKey: import datetime import pandas as pd df = pd.Da
我有一个应用于 pandas 数据框的函数,我正在考虑使用 dask 来提高性能 这是我现有的代码: df.reset_index( level=0, inplace=
基本设置: 我有一个在行和列上都有一个 MultiIndex 的 DataFrame 。列索引的第二级具有 float 值。 我想执行groupby操作(按行索引的第一级分组)。该操作将向每个组添加几
我有一个像这样填充的示例 DataFrame: Alpha Beta Gamma Delta Epsilon Date 2017-01-02
给定这段代码: s = pd.Series([1,2,3], index=['C','B','A']) s.sort_index(inplace=True) s 现在不应该是这样的吗: A 3
我是一名优秀的程序员,十分优秀!