Python 根据所有日期查找通用ID
我在一个数据框中有两列。身份证和日期。我想找到所有给定日期的通用ID。有很多方法/解决方案可以解决这个问题。我想知道python、pandas或numpy中是否有内置函数可以帮我完成这项工作。让我举例说明:Python 根据所有日期查找通用ID,python,pandas,time-series,Python,Pandas,Time Series,我在一个数据框中有两列。身份证和日期。我想找到所有给定日期的通用ID。有很多方法/解决方案可以解决这个问题。我想知道python、pandas或numpy中是否有内置函数可以帮我完成这项工作。让我举例说明: Date Id 2019-04-01 334 2019-04-01 335 2019-04-01 336 2019-04-02 334 2019-04-02 335 在这种情况下,答案是: Date Id 2019-04-01 334
Date Id
2019-04-01 334
2019-04-01 335
2019-04-01 336
2019-04-02 334
2019-04-02 335
在这种情况下,答案是:
Date Id
2019-04-01 334
2019-04-01 335
2019-04-02 334
2019-04-02 335
重塑并删除缺少值的列,以便仅获取每个组中存在的值:
df = (df.groupby(['Date','Id'])
.size()
.unstack()
.dropna(axis=1)
.stack()
.index
.to_frame(index=False))
print (df)
Date Id
0 2019-04-01 334
1 2019-04-01 335
2 2019-04-02 334
3 2019-04-02 335
您可以使用条件选择:
df.loc[df['column'] == value]
其中,
column
是列的名称,value
是要搜索的值。这将返回另一个仅包含所选行的数据帧。您可以使用其他条件运算符,如=代码>也使用同样的方法。这里有一种方法转换+nunique
df[df.groupby(['Id'])['Date'].transform('nunique')==df.Date.nunique()]
Out[208]:
Date Id
0 2019-04-01 334
1 2019-04-01 335
3 2019-04-02 334
4 2019-04-02 335