我在名为Pandas
的{{1}}数据帧(final_combine_df)中有一列。我将有一个15个字符串,例如:'371899201001045'。我想在数据框中创建一个名为GEOID
的新列,该列仅等于'CB_GrpID'
值的前12个字符(例如:'371899201001')。我尝试了此操作,但是它只是在新的GEOID
中返回了相同的GEOID
值(未截断):
'CB_GrpID'
我在这里做什么错了?
final_combine_df['CB_GrpID'] = final_combine_df['GEOID'][:12]
答案 0 :(得分:2)
pandas.Series.str
Working with text
您正在寻找str
访问器。它可以访问每个单元格中的字符串以及“矢量化”字符串方法。
final_combined_df['GEOID'].str[:12]
您在做什么:
final_combined_df['GEOID'][:12]
仅获得该列的前12个元素。
答案 1 :(得分:0)
遵循此格式。使用lambda函数返回字符串的前12位数字。注意python从索引0开始,上限是互斥(不包括),这意味着您要的最后一个元素在索引11,但是您将上限设置为12以确保包括11。仅供参考,以防您不知道。
df[‘new_var’] = df[‘old_var’].apply(lambda x: x[:12])