根据逗号将值 0 添加到现有列

Adding value 0 to existing column based on comma

我有一个如下所示的数据框:

name price
x    ,12
y    ,9
z    10,25

我必须在逗号前添加“0”(除非逗号前已经有数字,否则无法更改)因此数据框应如下所示:

name price
x    0,12
y    0,9
z    10,25

你有什么想法吗?感谢您的帮助。

此致

假设您使用的是字符串而不是数字,这对我有用:

df["price"] = df["price"].where(~df["price"].str.startswith(","), "0"+df["price"])

这是一个例子

df = pd.DataFrame([["x",",12"],["y",",3"],["z","5"],["o","1,2"]], columns=["name","price"])
print("input:", df)
df["price"] = df["price"].where(~df["price"].str.startswith(","), "0"+df["price"])
print("output:", df)

产量:

input:   name price
0    x   ,12
1    y    ,3
2    z     5
3    o   1,2
output:   name price
0    x  0,12
1    y   0,3
2    z     5
3    o   1,2

编辑这是一个可能的解决方案:

    A   B
0   1   ,2
1   2   ,02
2   3   1,3
3   4   ,9
4   5   13
5   6   12

df['B'] = df['B'].str.replace(",", "0,",  regex=True)
df['B'] = df['B'].apply(lambda x: '{0:0>4}'.format(x))
df['B'] = df['B'].apply(lambda x: x.replace(',','.'))
df['B'] = df['B'].astype(float)

这给出了

    A   B
0   1   0.20
1   2   0.02
2   3   1.30
3   4   0.90
4   5   13.00
5   6   12.00