如何在pandas中为一列中的每个值添加后缀

9rnv2umw  于 2023-06-28  发布在  其他
关注(0)|答案(3)|浏览(217)

我一直在尝试为 Dataframe 中一列中的每个值添加后缀。我不小心把我想做后缀的东西加成了前缀。我不知道该怎么补救如何在pandas中将前缀更改为后缀?

qfe3c7zg

qfe3c7zg1#

如果每个列的前缀都相同,因此具有固定的长度,则可以使用df[column].str[prefix_length:]将其删除。例如,你的前缀是'_asdf',所以你想用df[column].str[4:]从你的列中删除前四个字符。
要添加后缀,可以使用df[column] = df[column] + suffix

mu0hgdu0

mu0hgdu02#

可以使用str访问器将前缀转换为后缀。
假设下面的dataframe:

>>> df
           col1
0  _suffixHello
1  _suffixWorld

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

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
wgx48brx

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,否则,您将由于未对齐的数据类型而获得错误。

相关问题