Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 熊猫:对于特定列中的所有重复条目集,获取第2部分中的一些信息_Python_Python 3.x_Pandas_Dataframe_Pandas Groupby - Fatal编程技术网

Python 熊猫:对于特定列中的所有重复条目集,获取第2部分中的一些信息

Python 熊猫:对于特定列中的所有重复条目集,获取第2部分中的一些信息,python,python-3.x,pandas,dataframe,pandas-groupby,Python,Python 3.x,Pandas,Dataframe,Pandas Groupby,所以我最近问了一个关于这组数据的问题() 现在我有这个代码: df.groupby('ID_Code').apply(lambda x: (x[['Status1','Status2']] == 'Not').all(1).sum()/len(x)*100) 这给了我这个输出: ID_Code A 0.000000 B 50.000000 C 66.666667 dtype: float64 我想知道的是做同样的事情,但给一个额外的日期栏。因此,重申一下,我希望

所以我最近问了一个关于这组数据的问题()

现在我有这个代码:

df.groupby('ID_Code').apply(lambda x: (x[['Status1','Status2']] == 'Not').all(1).sum()/len(x)*100)
这给了我这个输出:

 ID_Code
 A     0.000000
 B    50.000000
 C    66.666667
 dtype: float64
我想知道的是做同样的事情,但给一个额外的日期栏。因此,重申一下,我希望每天每个ID_代码的Not百分比

     ID_Code    Status1    Status2    Date
0      A          Done       Not     01-23-18
1      A          Done       Done    01-23-18
2      B          Not        Not     01-24-18
3      B          Not        Done    01-24-18
4      C          Not        Not     01-24-18
5      C          Not        Not     01-25-18
6      C          Done       Done    01-25-18

只需将
Date
添加到您的groupby:

df.groupby(['ID_Code','Date']).apply(lambda x: (x[['Status1','Status2']] == 'Not').all(1).sum()/len(x)*100)

ID_Code  Date    
A        01-23-18      0.0
B        01-24-18     50.0
C        01-24-18    100.0
         01-25-18     50.0
dtype: float64

# To get as a standard dataframe, add in `.reset_index()`
# df.groupby(['ID_Code','Date']).apply(lambda x: (x[['Status1','Status2']] == 'Not').all(1).sum()/len(x)*100).reset_index()

谢谢工作得很好。
df.groupby(['ID_Code','Date']).apply(lambda x: (x[['Status1','Status2']] == 'Not').all(1).sum()/len(x)*100)

ID_Code  Date    
A        01-23-18      0.0
B        01-24-18     50.0
C        01-24-18    100.0
         01-25-18     50.0
dtype: float64

# To get as a standard dataframe, add in `.reset_index()`
# df.groupby(['ID_Code','Date']).apply(lambda x: (x[['Status1','Status2']] == 'Not').all(1).sum()/len(x)*100).reset_index()