我有两个列表,一个是动态的columns
名称,另一个是values
。如何将该映射映射到我的数据帧df
。对于这个,我把这些列表作为静态的。但在我的程序中,将是动态的
df = pd.DataFrame(columns = ['ABC', 'LMN', 'XYZ','PQR']
columns = ['LMN','PQR']
values = ['234','654']
到目前为止我已经试过了
for i in range(len(values)):
df[columns[i]] = np.where(df[columns[i]] == columns[i], values[i], 0)
预期产量:-
Id ABC LMN XYZ PQR
0 0 234 0 654
您可以这样尝试:
您可以从列表
values
中获取包含元素的熊猫系列,其中df
中的所有列都作为索引,并用0填充未定义的条目,然后将其附加到df
,如下所示:结果:
我们使用^{} ,这样序列就已经有了与
df
的完整列集相对应的完整索引集。因此,我们可以在附加到df
之前用0填充NaN
值或者,我们也可以简化以下步骤:
此版本比以前的版本更简单,无需使用^{} 。但是,在
.fillna()
步骤中,它还将填充前面行的NaN
值取决于是否要保留前几行的
NaN
值。如果您不需要保留前几行的NaN
值,那么这是一个更简单的版本。否则,以前的版本更合适您也可以通过
append()
、Dataframe()
和fillna()
方法来实现这一点:如果您打印
df
,您将获得:相关问题 更多 >
编程相关推荐