python - 从 Pandas 中的文件名中去除月份和年份
解决方案
年份总是在同一个地方 -[-9:-5]
它从字符串的末尾开始计算字符。
如果您使用拆分文件名," "
那么您将获得列表并且月份将具有索引-2
import pandas as pd
df = pd.DataFrame({
'filename':[
"102 RB loss Chamdor June 2018.xlsx",
"102 RB loss Chamdor Januray 2018.xlsx",
]})
df['year'] = df['filename'].str[-9:-5]
df['month'] = df['filename'].apply(lambda x:x.split(" ")[-2])
print(df)
结果
filename year month
0 102 RB loss Chamdor June 2018.xlsx 2018 June
1 102 RB loss Chamdor Januray 2018.xlsx 2018 Januray
编辑:正如@SpghttCd 所说,apply()
您可以使用
df['month'] = df['filename'].str.split().str[-2]
如果您有更复杂的名称,那么您可以尝试正则表达式
df['year'] = df['filename'].str.extract('(\d{4})')
df['month'] = df['filename'].str.extract('(June|Januray|names|of|other|months)')
推荐阅读
- c# - 我们可以使用 StackExchange.Redis 而不使用 LUA 脚本连接 redis 服务器版本 4.0.8 吗?
- xamarin - 如何使用“xamarin + Xam.Plugin.Webview”跨平台处理导航错误
- python - 为什么这段代码在我运行时会给我一个 NameError?
- ios - 在UILabel上使用捏合手势调整字体和标签框架的大小?
- maven - 是否可以使用 pom.xml 属性并忽略命令行参数?
- angular - 角度属性绑定
- amazon-redshift - 从红移查询编辑器中的字符变量中提取年份
- java - 在满足条件之前,如何使用加载屏幕正确暂停主线程而不冻结 UI,
- javascript - 用户如何通过 input=file 发送恶意软件代码
- unix - 整理出每个重复名字的最小值