嗨,让我用一个例子说明我的问题:
我有一个名为NorD的数据帧df。
和数字(变体和中性):
离经叛道:
24, 13, 24
13, 24, 13
中性:
24, 24, 24
NorD
N
N
N
D
N
D
N
D
N
D
我要做的是创建3列:分别为" N" ,"尺寸","间距"当列" NorD"以及#34; NorD"以及#34; NorD"以及#34; NorD" ==" D",但是当使用一个deviant的大块来填充D两次时,它不能再次使用(因此每个deviant只能在整个数据帧中出现两次)。 / p>
当" 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 24 24但这段代码不起作用=>
for i in range(240):
if ['NorD'] == 'N':
df.loc[i] = ['24','24','24']
被困2:我甚至不知道如何解决这个问题如果遇到“D' D' D' D' D' D' 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)
更新: 使用此代码解决了Stuck 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
仍在努力解决陷入困境的问题
答案 0 :(得分:0)
以下是我的问题的答案。得到了一些关于pydev松弛的帮助谢谢jkelly:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
# You made the initial df above from random import shuffle
a_list_of_b_values =
[ { 'N': 1, 'Size': 2, 'Space': 3 },
{ 'N': 1, 'Size': 2, 'Space': 3 },
{ 'N': 2, 'Size': 3, 'Space': 4 },
{ 'N': 2, 'Size': 3, 'Space': 4 },etc ...]