如何访问列表的熊猫系列元素

时间:2018-09-10 14:07:36

标签: python pandas

我有一个Dataframe系列,其中包含每一行的字符串列表。我想创建另一个系列,该系列是该行列表中的最后一个字符串。

所以一行可能有一个列表,例如

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

我想在此'd'中创建由该行的最后一个元素组成的另一个熊猫系列,通常以-1引用的形式访问。每个观察结果(即行)的列表长度不一。该怎么办?

2 个答案:

答案 0 :(得分:3)

我认为需要使用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也是可迭代的:

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

答案 1 :(得分:3)

为什么不使列表列成为信息数据框,而您可以使用索引进行连接

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]