根据逗号将值 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
我有一个如下所示的数据框:
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