我有一個name列,我試圖提取字符串的前75%字符。
我所嘗試的:
data = [
["123", "NQMCare"],
["456", "CRAMER"],
["789", "Swinley Court"]
]
df = pd.DataFrame(data, columns=["ID", "Name"])
df["len"] = df["Name"].str.len()
df["len_75"] = (df.len * 0.75).fillna(0).astype(int)
df["Name 2"] = df["Name"].str[ : df.len_75 ]
df["Name 3"] = df["Name"].str.slice(0, df.len_75, 1)
df
# ID Name len len_75 Name 2 Name 3
# 0 123 NQMCare 7 5 NaN NaN
# 1 456 CRAMER 6 4 NaN NaN
# 2 789 Swinley Court 13 9 NaN NaN
我在嘗試分割字符串值時得到了NaN
。我不知道哪里出錯了,因為像這樣df["Name"].str[:5]
的整數值硬編碼是有效的。。。
pandas中的切片只能通過標量進行,如果可能需要每行不同的值,請使用
DataFrame.apply
或列表理解: