如何将逗号添加到数据框中的现有值中? Pandas
How can I add comma into existing value in dataframe? Pandas
我从一个网站上抓取了一个数据框,但在抓取过程中我丢失了值中的逗号,因此看起来如下所示:
name price
x 100
y 89
z 123584
现在我必须通过在右数第二位的每个值中添加逗号来修改“价格”列中的值。结果应该是这样的:
name price
x 1,00
y 0,89
z 1235,84
你有什么想法可以实现吗?
致以最诚挚的问候并感谢您的帮助
我们可以在这里尝试使用 str.replace
:
df['price'] = df['price'].astype('str').str.replace(r'^(\d{2})$', '0\1')
.str.replace(r'^(\d+)(\d{2})$', '\1,\2')
第一次调用 str.replace
为仅包含两个(十进制)数字的价格添加前导零。第二次调用在最后两位小数前插入一个逗号分隔符。
我们可以对您的字符串进行切片并添加逗号:
df['price'].str[:-2] + ',' + df['price'].str[-2:]
0 1,00
1 ,89
2 1235,84
Name: price, dtype: object
或者我们可以使用 str.cat
和 sep
参数:
df['price'].str[:-2].str.cat(df['price'].str[-2:], sep=',')
0 1,00
1 ,89
2 1235,84
Name: price, dtype: object
我从一个网站上抓取了一个数据框,但在抓取过程中我丢失了值中的逗号,因此看起来如下所示:
name price
x 100
y 89
z 123584
现在我必须通过在右数第二位的每个值中添加逗号来修改“价格”列中的值。结果应该是这样的:
name price
x 1,00
y 0,89
z 1235,84
你有什么想法可以实现吗?
致以最诚挚的问候并感谢您的帮助
我们可以在这里尝试使用 str.replace
:
df['price'] = df['price'].astype('str').str.replace(r'^(\d{2})$', '0\1')
.str.replace(r'^(\d+)(\d{2})$', '\1,\2')
第一次调用 str.replace
为仅包含两个(十进制)数字的价格添加前导零。第二次调用在最后两位小数前插入一个逗号分隔符。
我们可以对您的字符串进行切片并添加逗号:
df['price'].str[:-2] + ',' + df['price'].str[-2:]
0 1,00
1 ,89
2 1235,84
Name: price, dtype: object
或者我们可以使用 str.cat
和 sep
参数:
df['price'].str[:-2].str.cat(df['price'].str[-2:], sep=',')
0 1,00
1 ,89
2 1235,84
Name: price, dtype: object