我有以下系列(df):
Index Information
1 [2, A, C]
2 [3, B, C]
3 [4, C, H]
4 [5, D, H]
5 [6, E, H]
6 [7, F, H]
我想要一个只提取并存储每个列表的第三个值的系列:
Index Information
1 [C]
2 [C]
3 [H]
4 [H]
5 [H]
6 [H]
如果我试试
df[0][2]
,它正确地提供了所需的输出[C]
。
但是,如果我尝试df[:][2]
,而不是提供
[C]
[C]
[H]
[H]
[H]
[H]
输出
3 [4, C, H]
这应该是什么正确的语法?
答案 0 :(得分:2)
pandas.Series.str
df.Information.str[2:3]
0 [C]
1 [C]
2 [H]
3 [H]
4 [H]
5 [H]
Name: Information, dtype: object
assign
df.assign(Information=df.Information.str[2:3])
Index Information
0 1 [C]
1 2 [C]
2 3 [H]
3 4 [H]
4 5 [H]
5 6 [H]
每个@coldspeed df.assign(Information=[l[2:3] for l in df.Information.tolist()])
Index Information
0 1 [C]
1 2 [C]
2 3 [H]
3 4 [H]
4 5 [H]
5 6 [H]
答案 1 :(得分:0)
另一种选择:
df["new_col"] = df["Information"].apply(lambda x: x[2])