Как выбрать конкретный элемент из списка строк в Python - PullRequest
0 голосов
/ 21 мая 2018

У меня есть следующие серии (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 голосов
/ 21 мая 2018

Другая альтернатива:

df["new_col"] = df["Information"].apply(lambda x: x[2])
0 голосов
/ 21 мая 2018

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...