数据框架的totalGross列中的值如下所示。我需要用['x']表达式来固定值,因为我需要找到方程。
df['totalNet'] = df['totalNet'].map(str)
对我不起作用。谢谢。
输入:
'totalNet': ["['385.88']",'385.88',"['188.93']",'188.93',"['342.66']",'342.66',"['178.52']",'178.52',"['1947.60']",'1947.60']
输出:
0 385.88
1 385.88
2 188.93
3 188.93
4 342.66
183 422.42
184 200.00
185 200.00
186 2461.77
187 2461.77
iuc,可以使用:
df['totalNet'] = pd.to_numeric(df['totalNet'].str.strip("'[]"), errors='coerce')
输出:
0 385.88
1 385.88
2 188.93
3 188.93
4 342.66
5 342.66
6 178.52
7 178.52
8 1947.60
9 1947.60
Name: totalNet, dtype: float64
可以用ast.literal_eval
将list
中的str
转化为list
。在你的例子中:
import ast
df['totalNet'] = ["['385.88']",'385.88',"['188.93']",'188.93', "['342.66']",'342.66',"['178.52']",'178.52',"['1947.60']",'1947.60']
df['totalNet'] = df['totalNet'].apply(lambda x: x if not x.startswith("[") else ast.literal_eval(x)[0])
df
输出totalNet
0 385.88
1 385.88
2 188.93
3 188.93
4 342.66
5 342.66
6 178.52
7 178.52
8 1947.60
9 1947.60