【发布时间】:2019-10-16 15:54:36
【问题描述】:
我有一个数据框,我想将 MinP 中的值替换为 MaxP 中的值,前提是 MaxP 具有 +/- [然后我将删除 +/- 并转换为数字]
我的代码可以工作,但是当 Maxp 没有 +/- 时,它会在 MinP 中放置一个 0,而我想保留 MinP 的值(如果有)
import pandas as pd
df = pd.DataFrame({
'MinP':['0','','-10','',],
'MaxP':['20','15','12','+/-20']})
print(df)
df['MinP'] = df['MaxP'].apply(lambda x: df['MaxP'] if '+/-' in x else df['MinP'])
print(df)
MinP MaxP
0 0 20
1 15
2 -10 12
3 +/-20
MinP MaxP
0 0 20
1 0 15
2 0 12
3 20 +/-20
我还玩过: df.loc[df['MinP']] = np.where(df.MaxP.str.contains("+/-"), df['MaxP'],df.MinP) 但没有得到任何地方。
还有其他想法吗?
【问题讨论】:
标签: python pandas dataframe lambda