在每一行的一列中切片部分值

Slice part of value in one column for each row

我想要一个 10 位字符串数字的 select 位 5:8 用于一列的每一行。我试过在循环中建立索引,但这看起来很乏味。有没有更简单的方法?

数据小例子:

import pandas as pd 
data = [[1, 2, '12345678910'], [1, 2, '10987654321'], [1, 2, '11029384756']]
df = pd.DataFrame(data, columns = ['Var1', 'Var2', 'Var3])

Var3 应该被操纵并且结果应该是更短长度的字符串:

data = [[1, 2, '5678'], [1, 2, '6543'], [1, 2, '3847']]
df = pd.DataFrame(data, columns = ['Var1', 'Var2', 'Var3'])

您可以对特定列使用应用函数,然后获取每个值的子字符串:

import pandas as pd

data = [[1, 2, '12345678910'], [1, 2, '10987654321'], [1, 2, '11029384756']]
df = pd.DataFrame(data, columns=['Var1', 'Var2', 'Var3'])

df['Var3'] = df['Var3'].apply(lambda x: x[4:8])

注意:在你的结果中你没有提取 5:8 个字符,但我希望你明白了。