Pandas逐行读取DataFrame数据以及修改对应数据

逐行读取数据,并修改对应数据

	# remove_data,为一个DataFrame对象
    for indexs in remove_data.index:
        # 逐行查看,values可以用int型索引
        remove_data.loc[indexs].values[0:-1]
 
        # 逐行修改列值
        remove_data.loc[indexs, "Norm_peptide"] = norm_protein
        
		# 也可以用loc方法查看指定元素
		remove_data.loc[indexs].values[10]

删除

	# data为DataFrame对象
	# Gene_ID是data的列索引值
	# not_ensenbl是存储Gene_ID的列表
    res= data[~data.Gene_ID.isin(not_ensembl)]

map结合lambda的复杂使用

    data = [[0, '1,4,8,32'], [1, '2,16'], [2, '2,32'], [3, '1,4,8,32'], [4, '1,4']]
    df = pd.DataFrame(data, columns=["id", "val"])

    df["new"] = df["val"].str.split(",")
    df["province"] = df["new"].map(lambda x: 1 if ("1" in x) else (2 if ("2" in x) else 0))
    df["city"] = df["new"].map(lambda x: 4 if ("4" in x) else 0)
    df["district"] = df["new"].map(lambda x: 32 if ("32" in x) else (16 if ("16" in x) else (8 if ("8" in x) else 0)))

    print df

你可能感兴趣的:(python,python)