Pandas從數據幀的字符串列中提取前N%的字符

我有一個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或列表理解:

df["Name 2"] = df.apply(lambda x: x["Name"][ : x.len_75 ], axis=1)
df["Name 3"] = [a[:b] for a, b in zip(df['Name'], df['len_75'])]
print (df)

    ID           Name  len  len_75     Name 2     Name 3
0  123        NQMCare    7       5      NQMCa      NQMCa
1  456         CRAMER    6       4       CRAM       CRAM
2  789  Swinley Court   13       9  Swinley C  Swinley C
主站蜘蛛池模板: 国产一区二区视频免费| 色婷婷一区二区三区四区成人网| 久久国产午夜一区二区福利| 国产SUV精品一区二区四| 国产激情无码一区二区app| 无码人妻一区二区三区兔费 | 无码aⅴ精品一区二区三区| 夜夜嗨AV一区二区三区| 麻豆一区二区三区蜜桃免费| 天堂成人一区二区三区| 亚洲午夜一区二区电影院| 久久久91精品国产一区二区三区| 一区二区三区观看| 无码人妻精品一区二区三区不卡| 少妇激情AV一区二区三区| 无码人妻精品一区二区三区99仓本| 国产成人久久精品麻豆一区| 日本夜爽爽一区二区三区| 国产福利在线观看一区二区| 理论亚洲区美一区二区三区 | 麻豆视频一区二区三区| 国产一区二区视频免费| 国产一区二区三区视频在线观看 | 日韩精品电影一区亚洲| 一区二区在线视频观看| 无码精品蜜桃一区二区三区WW| 精品久久久中文字幕一区| 国产在线不卡一区| 无码精品人妻一区| 真实国产乱子伦精品一区二区三区 | 亚洲一区免费视频| 3d动漫精品啪啪一区二区免费 | 中文字幕一区二区三区久久网站 | 欧洲精品码一区二区三区免费看| 精品国产一区二区二三区在线观看| 国产成人精品视频一区| jazzjazz国产精品一区二区| 日韩一本之道一区中文字幕| 色偷偷一区二区无码视频| 亚洲欧美日韩中文字幕一区二区三区| 人妻精品无码一区二区三区|