gpt4 book ai didi

python - Pandas 中的子字符串元素

转载 作者:行者123 更新时间:2023-12-01 09:12:21 25 4
gpt4 key购买 nike

对于 python DataFrame,我需要为列中的每个元素选择特定字符

df['y'] = df['x'].apply(lambda x: x[1:4])

但出现此错误

类型错误:“NoneType”对象不可订阅

最佳答案

我相信需要indexing with str它也处理 NaNNone:

df = pd.DataFrame({ 'x' : ['abcdef','av', 'a', None, np.nan]})
df['y'] = df['x'].str[1:4]
print (df)

x y
0 abcdef bcd
1 av v
2 a
3 None None
4 NaN NaN

编辑:

我建议首先按 str[1:] 进行索引,然后按 sparator 进行拆分,然后使用 str[0] 来查找第一个拆分列表:

df = pd.DataFrame({ 'x' : ['abc|etf','av|ee', 'ayty|s', None, np.nan]})

df['y'] = df['x'].str[1:].str.split('|').str[0]
print (df)

x y
0 abc|etf bc
1 av|ee v
2 ayty|s yty
3 None None
4 NaN NaN

编辑:

df = pd.DataFrame({ 'x' : ['abc|Ttf','av|Re', 'ayty|s','ayty|','ayty', None, np.nan]})

def f(x):
#find position
pos = x.find('|')
#if no match return same value
if pos == -1:
return x
#else procees code - split
else:
return x[:pos+2]

mask = df['x'].notnull()
df.loc[mask, 'y'] = df.loc[mask, 'x'].apply(f)
print (df)

x y
0 abc|Ttf abc|T
1 av|Re av|R
2 ayty|s ayty|s
3 ayty| ayty|
4 ayty ayty
5 None NaN
6 NaN NaN

关于python - Pandas 中的子字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51551031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com