如何用Pandas替换CSV指定列并生成新数据集data_2?
解决方案:替换DataFrame指定列并生成新数据集
嘿,刚学Pandas遇到这种修改列的问题太正常了,我给你两种简单直接的方法来实现需求:
方法一:基于已生成的last_col替换
既然你已经得到了处理好的last_col,只需要先复制原数据集避免误改原始数据,再把last_col赋值给新数据集的对应列就行:
import pandas as pd # 读取原始数据 data = pd.read_csv('filelocation/Data.csv', header=None) # 生成处理后的last_col last_col = data.iloc[0:208, 60].replace(['R','M'], [0,1]) # 复制原数据集得到独立的data_2(关键:避免修改原始data) data_2 = data.copy() # 将处理好的列替换到data_2的对应位置 data_2.iloc[0:208, 60] = last_col
方法二:一步到位直接处理新数据集
如果你不想单独生成last_col,也可以直接在新数据集上完成替换操作,代码更简洁:
import pandas as pd data = pd.read_csv('filelocation/Data.csv', header=None) # 复制原数据集并直接替换指定列 data_2 = data.copy() data_2.iloc[0:208, 60] = data_2.iloc[0:208, 60].replace(['R','M'], [0,1])
小提醒
- 一定要用
data.copy()创建新数据集,因为Pandas里直接赋值(比如data_2 = data)是引用关系,修改data_2会同步改变原始的data,这通常不是我们想要的结果。 - 你用
iloc[0:208,60]定位列是完全正确的,因为header=None时列索引从0开始,第60列就是你要处理的最后一列。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

