我有这个数据框
dd = pd.DataFrame({'a':[1,5,3],'b':[3,2,3],'c':[2,4,5]})
a b c
0 1 3 2
1 5 2 4
2 3 3 5
我只想替换小于c列的a和b列的数字。我要明智地进行此操作
我做到了
dd.applymap(lambda x: 0 if x < x['c'] else x )
我收到错误消息
TypeError: 'int' object is not subscriptable
我知道x是一个整数,但是如何获取该行的列c的值
我想要这个输出
a b c
0 0 3 2
1 5 0 4
2 0 0 5
答案 0 :(得分:2)
将DataFrame.mask
与DataFrame.lt
一起使用:
DO
$do$
DECLARE
skill_s Text[];
jsonObject json = // Json object
'{
"Name": "bala Kala",
"Education": "B.Tech",
"Skills": ["enim", "aliquip", "qui"]
}';
BEGIN
SELECT jsonObject::TEXT[]->'Skills' into skill_s;
raise info 'JSON value Name is %', skill_s;
END
$do$
或者您可以通过比较列df = dd.mask(dd.lt(dd['c'], axis=0), 0)
print (df)
a b c
0 0 3 2
1 5 0 4
2 0 0 5
的广播来设置值:
c