如何从另一列的截断值填充数据框中的一列
How to populating one column in a dataframe from the truncated value of another column
我在名为 GEOID
的 Pandas
数据框 (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])
我在名为 GEOID
的 Pandas
数据框 (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])