我想要把“是否有家属”的列值变为独热编码,把yes变为1,no变为0
想要批量修改列值,求解——
转成独热编码和原来的DataFrame中的其他列合并
one_hot = pd.get_dummies(df['是否有家属'], prefix='是否有家属')
one_hot.replace({'yes': 1, 'no': 0}, inplace=True)
new_df = pd.concat([df.drop('是否有家属', axis=1), one_hot], axis=1)
要批量修改Jupyter Notebook中的列值,可以使用Jupyter Notebook提供的cell
单元格和% cell
指令。
首先,确保你已经将列值存储在Notebook的cell
单元格中,可以通过使用% cell
指令来获取当前单元格的值,然后将其替换为新的列值。
以下是示例代码,将“是否有家属”
列的值为独热编码:
% cell "是否有家属"
= float(input("请输入“是否有家属”列的值:"))
if int(input("请输入确认值:")) == 1:
cell.value = "1"
elif int(input("请输入确认值:")) == 0:
cell.value = "0"
% end
接下来,你可以使用% cell
指令获取当前单元格的值,将其替换为新的列值,并重复此过程,批量修改其他单元格的值。
以下是修改其他列值的示例代码:
% cell "家庭成员"
= float(input("请输入“家庭成员”列的值:"))
if int(input("请输入确认值:")) == 1:
cell.value = "1"
elif int(input("请输入确认值:")) == 0:
cell.value = "0"
% end
% cell "子女数量"
= float(input("请输入“子女数量”列的值:"))
if int(input("请输入确认值:")) == 1:
cell.value = "1"
elif int(input("请输入确认值:")) == 0:
cell.value = "0"
% end
请注意,在修改其他列值时,你需要确保每个列的值都是唯一的,并且不会重复。此外,由于Jupyter Notebook的数据是存储在内存中的,因此批量修改列值时可能会影响性能。