मैं एक्सेल से डेटा फ्रेम पर टाइमग्रुपर पर काम कर रहा हूं और कॉलम हेडर के रूप में दिनांक और पंक्ति के रूप में समय और वाई पर कुल गणना "बार्टन एलएलसी" का उपयोग करके पीवीओटी करने की कोशिश कर रहा हूं।

Data.xls 
X        Y               Z               D
740150  Barton LLC  B1-20000    2014-01-01 02:21:51
740150  Barton LLC  B1-50809    2014-01-01 02:21:51
740150  Barton LLC  B1-53102    2014-01-01 02:21:51
740150  Barton LLC  S2-16558    2014-01-02 21:21:01
740150  Barton LLC  B1-86481    2014-01-02 21:21:01
740150  Curlis L    S1-06532    2014-01-02 21:21:01
740150  Barton LLC  S1-47412    2014-01-02 21:21:01
740150  Barton LLC  B1-33364    2014-01-02 21:21:01
740150  Barton LLC  S1-93683    2014-02-07 04:34:50
740150  Barton LLC  S2-10342    2014-02-07 04:34:50

पुन: नमूना और पिवट और टाइमग्रुपर का उपयोग करने का प्रयास किया लेकिन त्रुटियों का अनुक्रम मिला

import pandas as pd
import numpy as np
df = pd.read_excel("data.xlsx")
ndf = df[df['Type'].eq('df')].pivot_table(columns= ['Y'],values='Y',
index=pd.Grouper(key='D',freq='H'),aggfunc='count',fill_value=0) 

नतीजा

         2014-01-01,2014-01-02,2014-02-07
 02:21    3,NaN,NaN              
 21:21    NaN,4,NaN
 04:34    NaN,NaN,2
1
J.RAM 3 जिंदा 2019, 14:53

1 उत्तर

सबसे बढ़िया उत्तर

आप datetime कॉलम को date और time में बांट सकते हैं और pivot_table:

df['date'] = df['D'].dt.date
df['time'] = df['D'].dt.time
pd.pivot_table(df, 'D', 'time', 'date', aggfunc='count')

date       2014-01-01  2014-01-02  2014-02-07
time                                        
02:21:51         3.0         NaN         NaN
04:34:50         NaN         NaN         2.0
21:21:01         NaN         5.0         NaN

ध्यान दें कि आप दिनांक 2014-01-02 21:21:01 के लिए एक अंक नहीं खो रहे थे

3
yatu 3 जिंदा 2019, 15:02