在Python中提取sum的名称

在Python中提取sum的名称,python,pandas,for-loop,Python,Pandas,For Loop,我有以下称为df的数据帧: 我使用df.count查看一个值填充了多少次,每次填充5次: KEY_ID 5 READY 5 STEADY 5 GO 5 但我还想看看稳定列中的值被使用了多少次。我用abc=df[‘稳定’]来实现这一点。值_计算得出: Sometimes 2 Maybe 2 Later 1 使用for循环,我可以提取abc中的值信息,我刚刚用value_计数创建了abc,如下所示: for i in abc: print(i)

我有以下称为df的数据帧:

我使用df.count查看一个值填充了多少次,每次填充5次:

KEY_ID  5
READY   5
STEADY  5
GO      5
但我还想看看稳定列中的值被使用了多少次。我用abc=df[‘稳定’]来实现这一点。值_计算得出:

Sometimes  2
Maybe      2
Later      1
使用for循环,我可以提取abc中的值信息,我刚刚用value_计数创建了abc,如下所示:

for i in abc:
    print(i)
然而,我尝试了几种方法,包括

for i,j in enumerate(abc):
    print(i); print(j)
有时,也许,以后,我不想手动输入他们的名字。如何提取这些值的名称\u counts value?

您在寻找groupby吗

这就像下面给出的数据帧一样

        1
0
Apple   6
Orange  3
但是只要df.sum会这样给你

0    AppleOrangeAppleOrangeAppleOrange
1                                    9
我希望你能像第一个那样期待

In [339]: df
Out[339]:
     name  val
0   Apple    1
1  Orange    1
2   Apple    2
3  Orange    1
4   Apple    3
5  Orange    1

In [340]: df.groupby('name', as_index=False)['val'].sum()
Out[340]:
     name  val
0   Apple    6
1  Orange    3

In [341]: df.groupby('name', as_index=False)['val'].sum()['name']
Out[341]:
0     Apple
1    Orange
Name: name, dtype: object

In [342]: df.groupby('name', as_index=False)['val'].sum()['name'].tolist()
Out[342]: ['Apple', 'Orange']

您似乎希望首先通过以下方式进行筛选:

然后分组并求和:

另一种解决方案是groupby和aggregate,然后按列表仅选择值:

df1 = df.groupby('A')['B'].sum()
df2 = df1.loc[['Apple','Orange']].reset_index()
print (df2)
        A  B
0   Apple  6
1  Orange  3

嗨,简,不,我只想提取在Pandasy中执行“Dataframe.sum”时已经存在的Apple和Orange的名称。你没有提供足够的信息。如果您有一个名为DataFrame的变量,它看起来就像您所显示的一样,则无法获得任何类似于DataFrame.sum的求和。请注意,所有答案都假设您打算分组。请澄清,以免其他读者感到困惑。@probs您必须告诉我们您的起始数据是如何组织的。你正在得到ppl试图猜测的答案。澄清您的问题。编辑,抱歉之前的问题不清楚
0    AppleOrangeAppleOrangeAppleOrange
1                                    9
In [339]: df
Out[339]:
     name  val
0   Apple    1
1  Orange    1
2   Apple    2
3  Orange    1
4   Apple    3
5  Orange    1

In [340]: df.groupby('name', as_index=False)['val'].sum()
Out[340]:
     name  val
0   Apple    6
1  Orange    3

In [341]: df.groupby('name', as_index=False)['val'].sum()['name']
Out[341]:
0     Apple
1    Orange
Name: name, dtype: object

In [342]: df.groupby('name', as_index=False)['val'].sum()['name'].tolist()
Out[342]: ['Apple', 'Orange']
print (df)
        A  B
0   Peach  3
1    Pear  6
2   Apple  1
3  Orange  1
4   Apple  2
5  Orange  1
6   Apple  3
7  Orange  1

df1 = df[df['A'].isin(['Apple','Orange'])]
print (df1)
        A  B
2   Apple  1
3  Orange  1
4   Apple  2
5  Orange  1
6   Apple  3
7  Orange  1
df2 = df1.groupby('A', as_index=False)['B'].sum()
print (df2)
        A  B
0   Apple  6
1  Orange  3
df1 = df.groupby('A')['B'].sum()
df2 = df1.loc[['Apple','Orange']].reset_index()
print (df2)
        A  B
0   Apple  6
1  Orange  3