如何基于python中的列值创建自定义数据框?

时间:2019-07-19 00:33:25

标签: python pandas

我有一个初始虚拟数据帧,该数据帧有7列,1行,给定的列名称和初始化的零

d = pandas.DataFrame(numpy.zeros((1, 7)))
d = d.rename(columns={0:"Gender_M",
                      1:"Gender_F",
                      2:"Employed_Self",
                      3:"Employed_Employee",
                      4:"Married_Y",
                      5:"Married_N",
                      6:"Salary"})

现在我只有一条记录

data = [['M', 'Employee', 'Y',85412]] 
data_test = pd.DataFrame(data, columns = ['Gender', 'Employed', 'Married','Salary'])

从单条记录中,我必须创建一个新的数据框,如果

“性别”列中有M,则应将“ Gender_M”更改为1,然后将“ Gender_F”保留为零

Employed列中有Employee,然后Employed_Employee更改为1,Employed_Self为零

与Married相同,对于整数列Salary,只需将值设置为85412,我尝试使用if语句,但是它的代码集很长,有没有简单的方法?

2 个答案:

答案 0 :(得分:1)

这是两次使用更新的一种方法

d.update(df)
df.columns=df.columns+'_'+df.astype(str).iloc[0]
df.iloc[:]=1
d.update(df)

答案 1 :(得分:0)

可惜的是,作业往往被设计得无聊且重复。 您没有问题-而是希望其他人为您完成工作。 SO并非出于此目的-发布问题,您会发现很多人愿意提供帮助。

因此请显示您的完整答案,然后询问“是否有更好的方法”