Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从不同的GroupBy组中选择不同的行_Python_Pandas - Fatal编程技术网

Python 从不同的GroupBy组中选择不同的行

Python 从不同的GroupBy组中选择不同的行,python,pandas,Python,Pandas,与为每个组选择相同的索引不同,我想从每个组中选择特定的索引。例如,如果我的GroupBy对象由四个组组成,并且我希望每个组分别有第1、第5、第10和第15个组,那么我希望能够传递x=[0、4、9、14]并获取这些行 这是一件奇怪的事情;有什么原因吗 在任何情况下,要想做你想做的事,请尝试以下方法: df = pd.DataFrame([['a', 1], ['a', 2], ['b', 3], ['b', 4], ['b', 5],

与为每个组选择相同的索引不同,我想从每个组中选择特定的索引。例如,如果我的GroupBy对象由四个组组成,并且我希望每个组分别有第1、第5、第10和第15个组,那么我希望能够传递
x=[0、4、9、14]
并获取这些行

这是一件奇怪的事情;有什么原因吗

在任何情况下,要想做你想做的事,请尝试以下方法:

df = pd.DataFrame([['a', 1], ['a', 2], 
                   ['b', 3], ['b', 4], ['b', 5], 
                   ['c', 6], ['c', 7]], 
                  columns=['group', 'value'])

def index_getter(which):
    def get(series):
        return series.iloc[which[series.name]]
    return get

which = {'a': 0, 'b': 2, 'c': 1}

df.groupby('group')['value'].apply(index_getter(which))
其结果是:

group
a    1
b    5
c    7

类似于:
df.groupby(…).apply(lambda x:x.iloc[index])
实际上这似乎不起作用。它将每个索引应用于每个组,这样您可以从每个组中获得多行。好的,很好。因为你的问题不清楚。“我想从每个组中获取特定的指数”意味着您希望从每个组中获得相同的指数。谢谢!必须添加一个小代码,如
which=dict(zip(group_keys,x))
,但这样做了。谢谢