我有一個資料框架
df1 = pd. DataFrame({"strings":["stackoverflow", "stackexchange"], "start": [3, 4], "end": [7, 9]})
我想在開始和結束的位置分割字串列。
df1['strings']。 str[df1['start']:df1['end']] 。
給了我NaN。
我設法通過這種方式得到了結果,但這似乎不是最佳的。
我設法通過這種方式得到了結果。
[df1['strings']。 str[i: j] for i, j in zip(df1['start'], df1['end'])] [: 1]
uj5u.com熱心網友回復:
我不認為有任何方法可以將其矢量化--你能做的最好的就是行間的函式應用。
import pandas as pd
import numpy as np
df1 = pd. DataFrame({"strings":["stackoverflow", "stackexchange"], "start": [3, 4], "end": [7, 9]})
df1['strings'] = df1. apply(lambda x: x['strings'][x["start"]:x["end"] ] , axis=1)
注意,你的例子不太正確--你是從某一行中獲取開始和結束的值,并將其應用于每一行。
uj5u.com熱心網友回復:
一種方法是這樣的
for _, row in df1.iterrows()。
print(row['strings'][row['start']:row['end']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/324454.html
標籤:
