我有一个Dataframe系列,其中包含每一行的字符串列表。我想创建另一个系列,该系列是该行列表中的最后一个字符串。
所以一行可能有一个列表,例如
['a', 'b', 'c', 'd']
我想在此'd'中创建由该行的最后一个元素组成的另一个熊猫系列,通常以-1引用的形式访问。每个观察结果(即行)的列表长度不一。该怎么办?
答案 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]