在Python中提取sum的名称
我有以下称为df的数据帧: 我使用df.count查看一个值填充了多少次,每次填充5次:在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)
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