如何从python中的行列表中选择特定元素

时间:2018-05-21 17:08:37

标签: python pandas dataframe

我有以下系列(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]

这应该是什么正确的语法?

2 个答案:

答案 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])