выделите среднюю часть строки на основе общей длины строки в новый столбец панд - PullRequest
0 голосов
/ 05 июля 2018

Как бы я вытащил часть года строки на основе динамически меняющейся длины,

пример данных

Name
C:/Users/Documents/Ownership_1_Year_2015.csv
C:/Users/Documents/Non_Ownersip_1_Year_2016.csv
C:/Users/Documents/Ownership_1_Year_2016.csv

Формула, с которой я играю:

df['Name_Stripped'] = df['Name'].str[:-4]

, который, очевидно, извлекает .csv, и я опробовал, чтобы len (str) -8 предоставил динамическое начальное значение, но не удивительно, что он запутался, как и все, что я пытаюсь вычислить для длины. Я полагаю, что цикл for будет работать с длиной x, вызываемой каждый раз, но я уверен, что есть гораздо более питонический способ, о котором я не знаю ..

Ожидаемый результат:

 Name
2015
2016
2016

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Может ли это быть решением?

 df['Name_Stripped'] = df['Name'].str[-8:-4]

Выход:

                                              Name Name_Stripped
0     C:/Users/Documents/Ownership_1_Year_2015.csv          2015
1  C:/Users/Documents/Non_Ownersip_1_Year_2016.csv          2016
2     C:/Users/Documents/Ownership_1_Year_2016.csv          2016
0 голосов
/ 05 июля 2018

Я предлагаю извлечь целые числа длиной 4:

df['Name'] = df['Name'].str.extract('(\d{4})')
print (df)
   Name
0  2015
1  2016
2  2016
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...