python - Pandas - 基于另一列切片列值
问题描述
如何根据其他两列的第一个和最后一个字符位置指示符对列值进行切片?
这是示例df的代码:
import pandas as pd
d = {'W': ['abcde','abcde','abcde','abcde']}
df = pd.DataFrame(data=d)
df['First']=[0,0,0,0]
df['Last']=[1,2,3,5]
df['Slice']=['a','ab','abc','abcde']
print(df.head())
代码输出:
期望的输出:
解决方案
只需使用 for 循环即可,您可能会担心速度,请检查使用 pandas 的 For 循环 - 我应该什么时候关心?
df['Slice']=[x[y:z]for x,y,z in zip(df.W,df.First,df.Last)]
df
Out[918]:
W First Last Slice
0 abcde 0 1 a
1 abcde 0 2 ab
2 abcde 0 3 abc
3 abcde 0 5 abcde
推荐阅读
- twilio - Twilio Studio 拨出电话
- elasticsearch - 在 Elasticsearch 中克隆和重新索引索引有什么区别?
- javascript - 在 React 中 useEffect 在值从其他组件更改后不会更新
- javascript - 从 node-red 发送数据到本地网页
- git - 过滤 git repo 以从历史记录中删除大文件。工作副本成功,但推送后未显示在远程仓库中
- jquery - 从 jquery 在views.py 中起作用的URL
- sql - 如何在没有 RawSQL 的情况下在 Django 中创建和访问正则表达式捕获组?
- tensorflow - ValueError:检查输入时出错:预期 dense_1_input 具有 3 个维度,但得到的数组形状为 (5, 1)
- php - Symfony CSRF 无效令牌:URL 中的令牌和表单中的令牌不匹配
- image - jupyter RISE,隐藏图像命令