Как получить доступ к элементу серии панд, который является списком - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть ряд Dataframe, который содержит список строк для каждой строки. Я хотел бы создать еще одну серию, которая является последней строкой в ​​списке для этой строки.

Таким образом, одна строка может иметь список, например

['a', 'b', 'c', 'd']

Я бы хотел создать еще одну серию панд, состоящую из последнего элемента строки, обычно доступную как ссылка -1, в этом 'd'. Списки для каждого наблюдения (то есть строки) имеют различную длину. Как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Почему бы не преобразовать столбец списка в информационный фрейм данных, и вы можете использовать индекс для объединения

Infodf=pd.DataFrame(df.col.values.tolist(),index=df.index)
Infodf
Out[494]: 
      0     1     2     3
0     a     b     c     d
1     a     b  None  None
2     a  None  None  None
3  None  None  None  None

Я думаю, что я перебрал вопрос, и PiR, и Jez предоставили свое ценное предложение, чтобы помочь мне достичь конечного результата.

Infodf.ffill(1).iloc[:,-1]
0 голосов
/ 10 сентября 2018

Я считаю, что нужно индексировать с помощью str, он работает со всеми итерациями:

df = pd.DataFrame({'col':[['a', 'b', 'c', 'd'],['a', 'b'],['a'], []]})

df['last'] = df['col'].str[-1]
print (df)
            col last
0  [a, b, c, d]    d
1        [a, b]    b
2           [a]    a
3            []  NaN

string s также итерируемы:

df = pd.DataFrame({'col':['abcd','ab','a', '']})
df['last'] = df['col'].str[-1]
print (df)
    col last
0  abcd    d
1    ab    b
2     a    a
3        NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...