如何从另一列的截断值填充数据框中的一列

How to populating one column in a dataframe from the truncated value of another column

我在名为 GEOIDPandas 数据框 (final_combine_df) 中有一个列。我将有一个 15 个字符的字符串编号,如下所示:'371899201001045'。我想在我的数据框中创建一个名为 'CB_GrpID' 的新列,它只等于 GEOID 值的前 12 个字符(例如:'371899201001')。我试过了,但它只是在新 'CB_GrpID':

中返回了相同的 GEOID 值(未截断)
final_combine_df['CB_GrpID'] = final_combine_df['GEOID'][:12]

我做错了什么?

final_combine_df.iloc[0]['CB_GrpID']
>>371899201001045

pandas.Series.str

Working with text
str 访问器正是您要找的。它允许访问每个单元格中的字符串以及 "vectorized" 字符串方法。

final_combined_df['GEOID'].str[:12]

你在做什么:

final_combined_df['GEOID'][:12]

刚刚获取列的前 12 个元素。

遵循这种格式。使用 lambda 函数 return 字符串的前 12 位数字。注意 python 从索引 0 开始,上限是不包含的,这意味着您想要的最后一个元素位于索引 11 处,但是您将上限设置为 12 以确保包含 11。仅供参考,以防您不知道。

df[‘new_var’] = df[‘old_var’].apply(lambda x: x[:12])