我一直在尝试为 Dataframe 中一列中的每个值添加后缀。我不小心把我想做后缀的东西加成了前缀。我不知道该怎么补救如何在pandas中将前缀更改为后缀?
qfe3c7zg1#
如果每个列的前缀都相同,因此具有固定的长度,则可以使用df[column].str[prefix_length:]将其删除。例如,你的前缀是'_asdf',所以你想用df[column].str[4:]从你的列中删除前四个字符。要添加后缀,可以使用df[column] = df[column] + suffix
df[column].str[prefix_length:]
df[column].str[4:]
df[column] = df[column] + suffix
mu0hgdu02#
可以使用str访问器将前缀转换为后缀。假设下面的dataframe:
str
>>> df col1 0 _suffixHello 1 _suffixWorld
str.replace:
str.replace
df['col1'] = df['col1'].str.replace(r'(_suffix)(.*)', r'\2\1', regex=True) print(df) # Output col1 0 Hello_suffix 1 World_suffix
或者使用str.slice:
str.slice
suffix = '_suffix' df['col1'] = df['col1'].str.slice(len(suffix)) + suffix # same as # df['col1'].str[len(suffix):] + suffix print(df) # Output col1 0 Hello_suffix 1 World_suffix
wgx48brx3#
让我们首先创建一个系列,使用8种随机选择的颜色:
colors = np.array(['blue','brown', 'black', 'cyan', 'green', 'maroon', 'magenta', 'orange','pink', 'purple', 'red', 'teal','yellow' ])
s = pd.Series(np.random.choice(a = colors,size = 8,replace = False))
为变量'suffix'分配一个你想要作为后缀的字符串:然后使用apply方法和lambda函数将后缀连接到序列中的每个元素。确保series/column中所有元素的dtype都是字符串。如果它们是数字,请先将它们转换为str,否则,您将由于未对齐的数据类型而获得错误。
3条答案
按热度按时间qfe3c7zg1#
如果每个列的前缀都相同,因此具有固定的长度,则可以使用
df[column].str[prefix_length:]
将其删除。例如,你的前缀是'_asdf',所以你想用df[column].str[4:]
从你的列中删除前四个字符。要添加后缀,可以使用
df[column] = df[column] + suffix
mu0hgdu02#
可以使用
str
访问器将前缀转换为后缀。假设下面的dataframe:
str.replace
:或者使用
str.slice
:wgx48brx3#
让我们首先创建一个系列,使用8种随机选择的颜色:
s = pd.Series(np.random.choice(a = colors,size = 8,replace = False))
为变量'suffix'分配一个你想要作为后缀的字符串:
然后使用apply方法和lambda函数将后缀连接到序列中的每个元素。确保series/column中所有元素的dtype都是字符串。如果它们是数字,请先将它们转换为str,否则,您将由于未对齐的数据类型而获得错误。