python - 从熊猫数据框中的所有行中提取子字符串
问题描述
我有一个 pd.DataFrame ,如下所示:
pd.DataFrame(["SSDILFJKSIDHFKJSHDKUFH", "SLIDFSOIUDHFIUSDHF", "K<NFSKJGHSDUFSDK"], ["SKDJF", "FDKSJFSSDF", "SIDFDS"])
我想从第一列中提取子序列,但是我想要的子序列的长度取决于第二列中序列的长度。我想提取col1中第2个字符到col1中第n个字符的字符,其中n定义为col2中对应字符串的字符数。
如何才能做到这一点?
解决方案
这是使用列表推导的一种方式:
df = pd.DataFrame({'A': ["SSDILFJKSIDHFKJSHDKUFH", "SLIDFSOIUDHFIUSDHF",
"K<NFSKJGHSDUFSDK"]},
index=["SKDJF", "FDKSJFSSDF", "SIDFDS"])
df['B'] = [j[1:i+1] for i, j in zip(s.index.map(len), s.values)]
print(df)
A B
SKDJF SSDILFJKSIDHFKJSHDKUFH SDILF
FDKSJFSSDF SLIDFSOIUDHFIUSDHF LIDFSOIUDH
SIDFDS K<NFSKJGHSDUFSDK <NFSKJ
推荐阅读
- verilog - 在veriloga中创建实例矩阵
- ruby-on-rails - 您可以将“下一个”传递回调用当前函数的函数吗?
- webpack - Webpack 简单包没有运行时块
- javascript - vue 3 为触摸屏适配 @mouseover 和 @mouseleave
- python - 如何在 keras/tensorflow 中将图像拆分为补丁/子图像?
- javascript - jQuery .load() 不让我填写输入文本
- python - 如何让所有 ResNet50 层都出现在 model.summary 中?
- flutter - 读取 wav 音频文件并在 dart 和 flutter 中获取与时间相关的幅度数据以进行绘图
- firebase - 如何在firebase中更新url img
- python - bisect 中的 insort_left 和 insort_right 有什么区别?