我开始研究数据科学,并尝试预处理数据集。我有11列(col1到col11),我想将其应用于其中的每一列:
第二列女巫的例子是col2
col2Media = df['col2'][df['col2'] != '-'].astype(str).astype(int).values.mean()
df['col2'] = df['col2'].apply(lambda x: col2Media.astype(int) if x == '-' else x)
这就像 C 中的 for ,其中 i 作为列索引:
for (i = 1; i < 12; i++) {
MediaCol(i) = df['col(i)'][df['col(i)'] != '-'].astype(str).astype(int).values.mean()
df['col(i)'] = df['col(i)'].apply(lambda x: MediaCol(i).astype(int) if x == '-' else x)
}
答案 0 :(得分:2)
一种方法是在python中编写相同的循环。我想colMedia
仅用作临时系列。
for i in range(1,12):
colMedia = df['col'+str(i)][df['col'+str(i)] != '-'].astype(str).astype(int).values.mean()
df['col'+str(i)] = df['col'+str(i)].apply(lambda x: colMedia.astype(int) if x == '-' else x)
或者如果col1
至col11
是数据框的唯一列:
for col in df:
colMedia = df[col][df[col] != '-'].astype(str).astype(int).values.mean()
df[col] = df[col].apply(lambda x: colMedia.astype(int) if x == '-' else x)