制作一个字符串列的副本,并根据某个值剪切字符串



我有一个DataFrame,其中有一列用Python安装KKS代码。

KKS代码如下:

1BLA43AA0302021年3月1日1BHY28UI021

我想创建一个新列,其中字符串只包含相关信息。有时代码需要一个数字,但通常不需要。所需的数字在指定特定对象的3位数字后面给出。像这样:

BLABORBHY2

我用剪切了完整的KKS代码

df_1['KKS'] = df_1.Object.str[1:4]

但对于某些字符串,我需要它是

df_1['KKS'] = df_1.Object.str[1:5]

我的if语句不起作用,请帮助

我不完全理解你所说的是什么意思

所需的数字在指定特定对象的3位数字后面。

如果你能用例子进一步解释这一点,我可以提供更多帮助。否则,这就是如何将函数应用于数据帧中的行:

import pandas as pd
def test_for_four(s: str) -> bool:
third_digit_letter = s[4]
if third_digit_letter != "2":
return True
return False
def split_kks_code(s: str) -> str:
if test_for_four(s):
return s[1:4]
return s[1:5]
df = pd.DataFrame([{'KKS-Code': '1BLA43AA030'},
{'KKS-Code': '1BOR53AR021'},
{'KKS-Code': '1BHY28UI021'}])
df['KKS'] = df['KKS-Code'].apply(split_kks_code)

最新更新