python - 根据总 str 长度选择字符串的中间部分到新列 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 会提供一个动态起始值,但毫不奇怪,它对我试图计算的长度感到困惑。我确实认为 for 循环可以与每次调用的 x 的长度一起工作,但我确信还有更多我不知道的 pythonic 方式..

预期结果:

 Name
2015
2016
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

关于python - 根据总 str 长度选择字符串的中间部分到新列 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189266/

相关文章:

python - 使用 python xml 库将 XML 转换为 csv

python - 使用python的Mysql LIMIT OFFSET错误

python - 用户登录时Django postsave信号丢失参数

Python pandas 多索引列

python - NaN 值的序数编码器问题

python - pandas 多个分隔符不起作用

python - 在 Python 中查找字符串中的多个元素

python - 如何获取子类(class)的名称?

python - 在 python plt.plot 中使用系列作为标记大小

python - 根据字符串是否是 pandas Dataframe 中的子字符串创建列