【发布时间】:2021-08-27 13:46:39
【问题描述】:
我最初有一个包含两列的数据框。“Col 1”对于整个数据集只有两个值 - X 和 Y。在此示例中,我希望“Col 3”的值用 1 填充索引“3”索引“7”。然后索引'9'到索引'10'用2填充,索引'12'用3填充。所以基本上对于X中的每一个变化,我喜欢在'Col2'中填充它的对应值新列 'Col 3' 如下例所示:
我已在 Pandas 中应用此代码
col3 = pd.Series([], dtype='float')
count = 0
i = 0
while count < len(df):
if ~df['col2'][count].startswith('A'):
d_value = df['col2'][count]
if i != len(df)-1:
while df['col1'][i+1] != 'X':
col3[i + 1] = d_value
i = i + 1
count = i + 1
i = i + 1
df.insert(loc=1, column = 'Col 3', value = col3 )
如果我应用于数据子集(例如:500 行),则该代码有效,但如果我应用于整个数据集,则会出现错误。我在这做错了什么?
【问题讨论】:
-
@ifly6,编辑后的版本好吗?我删除了代码的图像。
标签: python pandas jupyter-notebook