如何在pandas系列中按索引提取元素

时间:2015-10-20 13:43:28

标签: python pandas

我正在尝试从系列中提取index [1]month但未获得它。它的系列来自DataFrame。

x = ltest['Date'].str.split("-")

5659    [2015, 07, 26]
5696    [2015, 07, 26]
5783    [2015, 07, 26]
5833    [2015, 07, 26]
5836    [2015, 07, 26]
dtype: object

x[1]   #error
x[x[1]] #error

Ltest来

    Store   DayOfWeek   Date    Sales   Customers   Open    Promo   StateHoliday    SchoolHoliday
5659    85  7   2015-07-26  11421   1606    1   0   0   0
5696    122 7   2015-07-26  5773    707 1   0   0   0
5783    209 7   2015-07-26  3742    354 1   0   0   0
5833    259 7   2015-07-26  15998   2857    1   0   0   0
5836    262 7   2015-07-26  32547   4783    1   0   0   0
我正在学习大熊猫。我检查了api documentation,但无法弄明白。

3 个答案:

答案 0 :(得分:3)

从文件中读取数据框时,将Date列设置为datetime

df = pd.read_csv('yourfile.csv',parse_dates=['Date'])

通过这种方式,您可以轻松访问有关月份的信息:

df['Month'] = df['Date'].dt.month

返回:

   Store  DayOfWeek       Date  Sales  Customers  Open  Promo  StateHoliday  \
0     85          7 2015-07-26  11421       1606     1      0             0   
1    122          7 2015-07-26   5773        707     1      0             0   
2    209          7 2015-07-26   3742        354     1      0             0   
3    259          7 2015-07-26  15998       2857     1      0             0   
4    262          7 2015-07-26  32547       4783     1      0             0   

   SchoolHoliday  Month  
0              0      7  
1              0      7  
2              0      7  
3              0      7  
4              0      7 

然后,如果您需要Month列的数组,则可以使用

df['Month'].values

返回:

[7 7 7 7 7]

答案 1 :(得分:0)

通常情况下,最好将DataFrame列保留为简单类型而不是列表,dicts等。在这种特殊情况下,您可以使用apply x.apply(lambda x: x[1])来提取该列表中的特定元素从数据组织的角度来看,法比奥的答案更好。

答案 2 :(得分:0)

我错过了参数var appContext = new AppContext(); appContext.UserLogins.Add(new UserLogin { DateTime = DateTime.UtcNow, LoginResult = result /* Depending of result */, Username = model.EMail }); appContext.SaveChanges(); ,因此拆分返回expand可能不适合日期提取,但是对于字符串,我认为它会有用。

list

更新

x = ltest['Date'].str.split(pat='-', expand=True)
x[1]

5659    07
5696    07
5783    07
5833    07
5836    07
Name: 1, dtype: object