假设你有一个大熊猫DataFrame具有某种主体数据和数字的column和index名称。>>> data=np.array([['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']])>>> columns = [2, 4, 8]>>> index = [10, 4, 2]>>> df = pd.DataFrame(data, columns=columns, index=index)>>> df 2 4 810 a b c4 d e f2 g h i现在假设我们要基于比较索引和列以某种方式操作数据框。考虑以下。如果索引大于列,则用 'k' 替换字母: 2 4 810 k k k4 k e f2 g h i其中索引等于列替换字母为“U”: 2 4 810 k k k4 k U f2 U h i列大于索引的地方用“Y”替换字母: 2 4 810 k k k4 k U Y2 U Y Y为了让这个问题对所有人有用:进行此替换的快速方法是什么?进行此替换的最简单方法是什么?来自最小示例的速度结果耶斯莱尔:556 µs ± 66.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)用户3471881:329 µs ± 11.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)雷木:4.65 ms ± 252 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)但是,我对 a) 是否可能或 b) 如何以这种方式进行比较没有任何感觉
3 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞
不确定实现这一点的最快方法,但一种非常简单的方法是像这样迭代数据帧:
for i in df.index:
for j in df.columns:
if i>j:
df.loc[i,j]='k'
elif j>i:
df.loc[i,j]='y'
else:
df.loc[i,j]='u'
添加回答
举报
0/150
提交
取消