मेरे पास कई डेटाफ़्रेम हैं जिनमें शामिल हैं

Name - category - type
---------------------------
Date - index - datetime64
X -  variable - str
Y -  variable - str

सभी डेटाफ़्रेम इसके सूचकांक (Date) द्वारा क्रमबद्ध हैं। तो पहली प्रविष्टि प्रत्येक डेटाफ्रेम का सबसे पहला दिन है।

df1
Date          X      Y      
2017-09-11  foo     bar
2017-09-12   foo    bar

df2
Date          X      Y      
2017-01-13  foo     bar
2017-02-12   foo    bar

df3
Date          X      Y      
2017-08-21  foo     bar
2017-10-12   foo    bar

मैं प्रत्येक फ्रेम का first_day प्राप्त करना चाहता हूं, उदाहरण के लिए,

first_day_df1 = "2017-09-11"
first_day_df2 = "2017-01-13"
first_day_df3 = "2017-10-12"

मैंने iloc,loc की कोशिश की है और केवल अनुक्रमणित किया है लेकिन कोई भाग्य नहीं है।
df.iloc[0] इस प्रविष्टि में सभी चर लौटाता है और df.iloc[0].index चर का नाम देता है।
df.loc[0] और df[0] बेशक त्रुटियां हैं। किसी भी मदद की सराहना की!
*
पांडा: 0.22.0
अजगर: 3.6

1
jayko03 28 मार्च 2018, 07:25

2 जवाब

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

मुझे लगता है कि [0] द्वारा अनुक्रमणिका के पहले मान का चयन करने की आवश्यकता है, क्योंकि क्रमबद्ध DatetimeIndex:

df1.index[0]

यदि क्रमबद्ध नहीं है:

df1.index.min()

यदि सभी DataFrames सूची में हैं:

dfs = [df1, df2, df3]
L = [x.index[0] for x in dfs]
1
jezrael 28 मार्च 2018, 05:07

बस स्लाइसिंग + अधिकतम () का उपयोग करें:

first_day_df1 = df1["Date"].min()

यदि "तारीख" सूचकांक है, तो:

first_day_df1 = df1.index.min()
0
TYZ 28 मार्च 2018, 14:26