- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在对 Series 的索引进行排序时,我不明白 key 函数是如何工作的。例如我有这样的系列:
(0, 4) k
(12, 16) a
(24, 28) b
(4, 8) f
(8, 12) g
我希望索引按以下顺序排列:
(0, 4)
(4, 8)
(8, 12)
(12, 16)
(24, 28)
这些不是元组,而只是字符串。当我将它作为列表排序时,我只是创建一个键函数,它向每个元素返回第一个数字,元素按该数字排序。但是在 sort_index() 的文档中据说关键函数应该接收一个系列并返回一个系列。那么它在这里是如何工作的呢?对列表进行排序并更改其索引无济于事,因为值与原始索引分离。
这就是我使用列表的方式。这是数据框。早些时候我创建了 wage_bin 来为每个工资做一个间隔。
person col2 col3 wage wage_bin
0 a 5 g 4 (0,4]
1 b 3 e 14 (12,16]
2 c 4 e 25 (24,28]
3 d 8 p 9 (8,12]
4 a 1 s 5 (4,8]
5 d 6 x 12 (8,12]
我理解的g是一个Series类型
g = df.groupby('wage_bin').size()
wage_bin
(0,4] 1
(12,16] 1
(24,28] 1
(4,8] 1
(8,12] 2
dtype: int64
在这里,我从 g 系列的索引中创建了一个列表,并使用分区在 '(' 和 ',' 之间取一个数字进行排序
k = list(g.index)
k.sort(key=lambda x: int(x.partition('(')[2].partition(',')[0]))
print(k)
['(0,4]', '(4,8]', '(8,12]', '(12,16]', '(24,28]']
所以我明白了 key 在 list case 中是如何工作的。我们有一个列表元素,而不是 x。但是当尝试对 sort_series() 使用键函数时,我无法得到任何明智的结果。当 x 是一个系列时,我不明白在函数中用 x 执行什么操作。
最佳答案
您可以:
index
上临时创建一个包含正则表达式 (str.extract()
) 的新列。将单引号 '
之前的最后一个 )
更改为 ]
如果您使用括号而不是圆括号import pandas as pd
df = pd.DataFrame({'A': {0: '(0, 4)', 1: '(12, 16)', 2: '(24, 28)', 3: '(4, 8)', 4: '(8, 12)'},
'B': {0: 'k', 1: 'a', 2: 'b', 3: 'f', 4: 'g'}}).set_index('A')
df['C'] = df.index.str.extract(',\s+(\d+)\)').astype(int)
df = df.sort_values('C').drop('C',axis=1)
df
Out[1]:
B
A
(0, 4) k
(4, 8) f
(8, 12) g
(12, 16) a
(24, 28) b
关于python - 使用 sort_index() 时的关键函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64160980/
我使用 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
我是一名优秀的程序员,十分优秀!