编辑数据框列值



数据框架的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_evallist中的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

最新更新