如何解析 Python 熊猫字符串中的一个字符?



我有一个数据框,想将第 9 个字符解析为第二列。 不过,我在某处缺少语法。

#develop the data
df = pd.DataFrame(columns = ["vin"], data = ['LHJLC79U58B001633','SZC84294845693987','LFGTCKPA665700387','L8YTCKPV49Y010001',
'LJ4TCBPV27Y010217','LFGTCKPM481006270','LFGTCKPM581004253','LTBPN8J00DC003107',
'1A9LPEER3FC596536','1A9LREAR5FC596814','1A9LKEER2GC596611','1A9L0EAH9C596099',
'22A000018'])
df['manufacturer'] = ['A','A','A','A','B','B','B','B','B','C','C','D','D']
def check_digit(df):
df['check_digit'] = df['vin'][8]
print(df['checkdigit'])]

出于某种原因,这会在每行中放置第 8 行 VIN。

在你的代码中这样做:

df['check_digit'] = df['vin'][8]

仅选择"vin"列中的第 8 个元素。试试这个:

for i in range(len(df['vin'])):
df['check_digit'] = df['vin'][i][8]

根据经验,每当遇到困难时,只需检查返回的变量的类型即可。它解决了很多小问题。

编辑:正如@Georgy在评论中指出的那样,使用循环不会是pythonic,解决此问题的更有效方法是:

df['check_digit'] = df['vin'].str[8]

.str 可以解决问题。为了将来参考,我想你会发现这很有帮助。

正确的方法是:

def check_digit(df):
df['check_digit'] = df['vin'].str[8]
print(df)

最新更新