Pandas提取单元格中的文字并进行切片
比如有如下的Excel数据
现在我们想要提取其中付款时间列中的内容,并且仅截取出发货的当天具体时间。
使用.str.slice()来解决这一问题
代码如下:
import pandas as pd file = pd.read_excel(r\"C:\\Users\\15025\\Desktop\\uncle\\debug.xlsx\") time = file[\"付款时间\"].str.slice(11, 19) print(time) \"\"\" result: 0 23:57:14 1 23:47:16 2 23:47:15 3 23:43:14 4 23:40:30 5 23:28:40 6 23:28:44 7 23:25:42 8 23:23:57 9 23:22:11 10 23:21:47 Name: 付款时间, dtype: object \"\"\"
可以看到,我们已经成功截取出了其中的时间信息。
上述方法是比较pandas
的写法。
还可以用另一种方法替代
代码如下:
import pandas as pd file = pd.read_excel(r\"C:\\Users\\15025\\Desktop\\uncle\\debug.xlsx\") for i in range(len(file[\"付款时间\"])): print(file[\"付款时间\"][i][11:19]) \"\"\" result: 23:57:14 23:47:16 23:47:15 23:43:14 23:40:30 23:28:40 23:28:44 23:25:42 23:23:57 23:22:11 23:21:47 \"\"\"
可以看到,我们也成功地获取到了我们想要的信息,但是我们使用了循环。
虽然速度感觉也不慢,还需要大量数据测试才能说明两种方法的优劣性。
目前推荐使用第一种pandas
的内置方法。
如果想要对最后一行数据进行处理呢?
可以使用如下代码:
import pandas as pd file = pd.read_excel(r\"C:\\Users\\15025\\Desktop\\uncle\\debug.xlsx\") time = file.iloc[-1].tolist() time1 = file.values[-1] print(time) print(time1) \"\"\" [\'SXDD202112212321341427301514\', \'2021-12-21 23:21:34\', \'2021-12-21 23:21:47\', \'2021122122001498451403927933\', \'G202112212321334217301915\'] [\'SXDD202112212321341427301514\' \'2021-12-21 23:21:34\' \'2021-12-21 23:21:47\' \'2021122122001498451403927933\' \'G202112212321334217301915\'] \"\"\"
可以看到我们成功地将最后一行的数据转化为了列表对象
接下来就可以正常的使用列表切片来获取我们需要的数据了
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
© 版权声明
THE END
暂无评论内容