嗨,让我用一个例子来说明我的问题:
我有一个数据帧df和一个名为NorD的列。你知道吗
以及大量的数字(偏离者和中立者):
越轨者:
24, 13, 24
13, 24, 13
中性:
24, 24, 24
NorD
N
N
N
D
N
D
N
D
N
D
我想做的是创建3列:分别是“N”、“Size”、“Spacing”,并用一个异常块填充,在可用的异常块中随机选择,当列“NorD”=“D”,然而,当一个异常块被用来填充一个D两次时,它就不能再被使用了(因此每个异常块只能在整个数据帧中出现两次)。你知道吗
当“NorD”==N时,用中性卡盘(24,24,24)填充。你知道吗
期望结果:
NorD N Size Spacing
N 24 24 24
N 24 24 24
N 24 24 24
D 24 13 24
N 24 24 24
D 13 24 13
N 24 24 24
D 13 24 13
N 24 24 24
D 24 13 24
这是我现在对240行的数据帧所做的:
df["NorD"] = is already imported so no need to care about this just need to know the column exist
df["N"] = np.nan
df["Size"] = np.nan
df["Spacing"] = np.nan
卡住1#我要做的是在第一行等于N时用24填充第二行、第三行和第四行,但此代码不起作用=>
for i in range(240):
if ['NorD'] == 'N':
df.loc[i] = ['24','24','24']
卡住2:我甚至不知道如何解决这个问题如果你在第二、第三和第四栏遇到“D”,请填写两次,并且只填写两次下面的数字。=>
for i in range(240):
if ['NorD'] == 'D':
##from here it is psuedocode
13,13,24
13,24,13
24,24,13
etc (there are 48 d 24 chunks so each deviant chunk should appear twice)
更新: 卡滞1已通过以下代码解决:
for i in range(240):
if df.loc[i,'NorD'] == 'N':
df.loc[i,'N'] = 24
df.loc[i,'Size'] = 24
df.loc[i,'Space'] = 24
仍在努力解决第二个问题
这是我问题的答案。在pydev slack上得到一些帮助谢谢你jkelly:
这个。。。意味着枚举所有必要的值两次
相关问题 更多 >
编程相关推荐