如何创建新数据框并使用单个语句替换特定列中的值?
说我有以下内容:
function askFor() {
return Number(prompt("Give me a number and I'll tell you it's square-root."));
}
function sqrtUserNum() {
let userNum;
do {
userNum = askFor();
if (isNaN(userNum)) {
alert(NaN);
} else {
alert(Math.sqrt(userNum))
}
} while (isNaN(userNum));
}
sqrtUserNum();
我可以用两个来做:
import pandas as pd
import numpy as np
student_ids = ['abc123', 'def321', 'qwe098', 'rty135']
extra_junk = ['whoa', 'hey', 'don\'t touch me', 'junk']
gpas = ['3.1', 'junk', 'NaN', '2.75']
aa = np.array([student_ids, extra_junk, gpas]).transpose()
df = pd.DataFrame(data= aa, columns=['student_id', 'extra_junk', 'gpa'])
>>> df
student_id extra_junk gpa
0 abc123 whoa 3.1
1 def321 hey junk
2 qwe098 don't touch me NaN
3 rty135 junk 2.75
答案 0 :(得分:3)
app.AppKt.isDebugException(this)
来自文档:
嵌套字典,例如{'a':{'b':nan}},如下所示:在列'a'中查找值'b'并将其替换为nan。
请注意,使用df2 = df.replace({'gpa':{'junk':'NaN'}})
会将其替换为字符串。如果您希望它是实际'NaN'
,请使用NaN
答案 1 :(得分:2)
您可以使用assign
创建副本并进行替换。
df2 = df.assign(gpa = df.gpa.replace('junk', 'NaN'))
df2
输出:
student_id extra_junk gpa
0 abc123 whoa 3.1
1 def321 hey NaN
2 qwe098 don't touch me NaN
3 rty135 junk 2.75