我有一个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)