我有一个Pandas数据框,每行包含一个名称和多个数字列。 在每行的特定索引之后(在每行中唯一计算),我想将该行中所有剩余值设置为0。
所以,我尝试了一些东西,并且有以下可行代码:
然而,由于我的数据集非常大,这需要相当长的时间。对于我的样本数据集,运行时间约为70秒,因为我的整个数据集要长得多。有没有更快的方法来做这件事?此外,在不循环遍历每一行的情况下,有没有更好的方法来进行这种操作?
编辑:抱歉,我应该说明如何计算指数。通过将数据帧的所有列(对于每一行)与一个特定的列进行比较并找到匹配项来计算索引。所以类似这样的东西:
所以,我尝试了一些东西,并且有以下可行代码:
for i in range(n):
index = np.where(df.columns == df['match_this_value'][i])[0].item()
df.iloc[i, index] = df['take_this_value'][i].day
df.iloc[i, (index+1):] = 0
然而,由于我的数据集非常大,这需要相当长的时间。对于我的样本数据集,运行时间约为70秒,因为我的整个数据集要长得多。有没有更快的方法来做这件事?此外,在不循环遍历每一行的情况下,有没有更好的方法来进行这种操作?
编辑:抱歉,我应该说明如何计算指数。通过将数据帧的所有列(对于每一行)与一个特定的列进行比较并找到匹配项来计算索引。所以类似这样的东西:
index = np.where(df.columns == df['match_this_value'][i])[0].item()
一旦我有了这个索引,我就将该列的值设置为df中另一列的值。目前整个代码看起来像这样:
for i in range(n):
index = np.where(df.columns == df['match_this_value'][i])[0].item()
df.iloc[i, index] = df['take_this_value'][i].day
df.iloc[i, (index+1):] = 0
specific index
是如何计算的? - user10325516