Python 根据str的总长度选择字符串的中间部分到新列中
如何根据动态变化的长度提取字符串的年份部分 示例数据Python 根据str的总长度选择字符串的中间部分到新列中,python,pandas,Python,Pandas,如何根据动态变化的长度提取字符串的年份部分 示例数据 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将提供
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的长度一起工作,但我确信有一种更为python的方式我不知道
预期成果:
Name
2015
2016
2016
我建议提取长度为4的整数:
df['Name'] = df['Name'].str.extract('(\d{4})')
print (df)
Name
0 2015
1 2016
2 2016
这能解决问题吗
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