【发布时间】:2026-01-29 06:45:02
【问题描述】:
我有两个数据框,比如 df1 和 df2,这两个数据框都非常大,有 100 万行和 1000 列。 现在,df1 有一个列,比如 X,其中包含字符(如下所示)。而df2有900+列,每一列都需要根据df1进行更改。
df1:
Index ColX ColY
100 C R
101 T Z
102 A Y
... .. ..
df2:
Index ColA ColB ColC ColD ... ...
100 0.033 0.10 0.22 1.22 ... ...
101 1.77 1.34 0.45 1.90 ... ...
102 0.88 1.56 1.99 0.99 ... ...
... ... ... ... ... ... ...
适用的条件是:
如果 df2 中的列 >= 0 且
df2 >= 1.5 和
预期输出:
df2:
Index ColA ColB ColC ColD ... ...
100 C C C C ... ...
101 Z T T Z ... ...
102 A Y Y A ... ...
... ... ... ... ... ... ...
我试过这样:
for v in df2.columns.tolist():
df2 = df2.loc[(df2[v] >= 0) & (df2[v] < 1.5) , v] = df1['ColX']
有时这是有效的,有时不是(对于第一种情况),但这种方法非常慢。我有一个很大的文件。
请有人告诉我任何有效的方法来做到这一点。 提前致谢。
【问题讨论】:
-
两个DataFrame中的索引值相同吗?
标签: python pandas data-manipulation data-cleaning