全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
734 2
2020-03-20
悬赏 2 个论坛币 已解决
各位朋友,我编了段代码,本意是想挑出小于特定值(比如40)的值,再将这些小于40的每个值随机赋值。结果发现结果所有小于40的值都被赋值成了一个,这该怎么改?或者用其他思路也可以 修改前 修改后(有问题) 代码

最佳答案

yunnandlg 查看完整内容

test.csv数据如下: old other 0 50 51 1 39 40 2 40 41 3 24 25 4 50 51 5 40 41 6 35 36 7 50 51 8 50 51 9 50 51 ************************************************** import pandas as pd import random df=pd.read_csv("test.CSV") print(df) print("*"*50) df["new1"]=df[df.old=40].old print(df) print("+"*50) df=df.fil ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-3-20 23:38:38
test.csv数据如下:
   old  other
0   50     51
1   39     40
2   40     41
3   24     25
4   50     51
5   40     41
6   35     36
7   50     51
8   50     51
9   50     51
**************************************************
import  pandas as pd
import random
df=pd.read_csv("test.CSV")
print(df)
print("*"*50)

df["new1"]=df[df.old<40].apply(lambda x: random.randint(45,50),axis=1)
df["new2"]=df[df.old>=40].old

print(df)
print("+"*50)

df=df.fillna(0)
df["new"]=df["new1"]+df["new2"]
print(df)
print("-"*50)
**************************************************

输出结果如下:  


   old    other
0   50     51
1   39     40
2   40     41
3   24     25
4   50     51
5   40     41
6   35     36
7   50     51
8   50     51
9   50     51
**************************************************
    old    other  new1  new2
0   50     51   NaN  50.0
1   39     40  47.0   NaN
2   40     41   NaN  40.0
3   24     25  50.0   NaN
4   50     51   NaN  50.0
5   40     41   NaN  40.0
6   35     36  50.0   NaN
7   50     51   NaN  50.0
8   50     51   NaN  50.0
9   50     51   NaN  50.0
++++++++++++++++++++++++++++++++++++++++++++++++++
    old    other  new1  new2   new
0   50     51   0.0  50.0  50.0
1   39     40  47.0   0.0  47.0
2   40     41   0.0  40.0  40.0
3   24     25  50.0   0.0  50.0
4   50     51   0.0  50.0  50.0
5   40     41   0.0  40.0  40.0
6   35     36  50.0   0.0  50.0
7   50     51   0.0  50.0  50.0
8   50     51   0.0  50.0  50.0
9   50     51   0.0  50.0  50.0
--------------------------------------------------



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-3-21 13:17:12
test.csv数据如下:
   old  other
0   50     51
1   39     40
2   40     41
3   24     25
4   50     51
5   40     41
6   35     36
7   50     51
8   50     51
9   50     51
**************************************************
import  pandas as pd
import random
df=pd.read_csv("test.CSV")
print(df)
print("*"*50)

df["new1"]=df[df.old<40].apply(lambda x: random.randint(45,50),axis=1)
df["new2"]=df[df.old>=40].old

print(df)
print("+"*50)

df=df.fillna(0)
df["new"]=df["new1"]+df["new2"]
print(df)
print("-"*50)
**************************************************

输出结果如下:  


   old    other
0   50     51
1   39     40
2   40     41
3   24     25
4   50     51
5   40     41
6   35     36
7   50     51
8   50     51
9   50     51
**************************************************
    old    other  new1  new2
0   50     51   NaN  50.0
1   39     40  47.0   NaN
2   40     41   NaN  40.0
3   24     25  50.0   NaN
4   50     51   NaN  50.0
5   40     41   NaN  40.0
6   35     36  50.0   NaN
7   50     51   NaN  50.0
8   50     51   NaN  50.0
9   50     51   NaN  50.0
++++++++++++++++++++++++++++++++++++++++++++++++++
    old    other  new1  new2   new
0   50     51   0.0  50.0  50.0
1   39     40  47.0   0.0  47.0
2   40     41   0.0  40.0  40.0
3   24     25  50.0   0.0  50.0
4   50     51   0.0  50.0  50.0
5   40     41   0.0  40.0  40.0
6   35     36  50.0   0.0  50.0
7   50     51   0.0  50.0  50.0
8   50     51   0.0  50.0  50.0
9   50     51   0.0  50.0  50.0
--------------------------------------------------
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群