【发布时间】:2020-01-16 07:35:03
【问题描述】:
从this answer 开始,我想将具有不同 bin 大小的剪切应用于分组表。比如我想转这个
+------+--------+--------+
| User | Value1 | Value2 |
+------+--------+--------+
| 1 | 56 | 12 |
| 1 | 28 | 30 |
| 1 | 65 | 42 |
| 2 | 394 | 33 |
| 2 | 2 | 43 |
| 2 | 60 | 45 |
| 3 | 5 | 20 |
| 3 | 5 | 80 |
+------+--------+--------+
进入这个
+------+--------+--------+-----------+
| User | Value1 | Value2 | Interval |
+------+--------+--------+-----------+
| 1 | 56 | 12 | |
| 1 | 28 | 30 | (12, 30] |
| 1 | 65 | 42 | (30, 42] |
| 2 | 394 | 33 | |
| 2 | 2 | 43 | (33, 43] |
| 2 | 60 | 45 | (43, 45] |
| 3 | 5 | 20 | |
| 3 | 5 | 80 | (20, 80] |
+------+--------+--------+-----------+
按照this answer 的问题“在 groupby 中应用 pandas cut”,到目前为止我的尝试是
import pandas
data = {
'User': [1, 1, 1, 2, 2, 2, 3, 3],
'Value1': [56, 28, 65, 394, 2, 60, 5, 5],
'Value2': [12, 30, 42, 33, 43, 45, 20, 80]}
df = pd.DataFrame.from_dict(data)
df['Interval'] = df.groupby(['User']).transform(lambda x: pd.cut(x['Value2'], bins=x['Value2']))
但这给出了错误
KeyError: ('Value2', '发生在索引 Value1')
【问题讨论】:
标签: pandas