Python 根据条件创建列
我有一个dataframe,其中包含列名称,如下所示 数据集1:Python 根据条件创建列,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个dataframe,其中包含列名称,如下所示 数据集1: df1_columns = [adult adultold old old1 old2 old3 old4 old6] In dataframe2 i have columns subset of column 1, now I want to add columns which I have in dataframe 1. 数据框架2: adult adultold old2
df1_columns = [adult adultold old old1 old2 old3 old4 old6]
In dataframe2 i have columns subset of column 1, now I want to add columns which I have in dataframe 1.
数据框架2:
adult adultold old2 old5
0 0 1 0
1 0 0 0
1 0 0 0
0 0 0 0
1 0 0 0
1 0 0 0
0 0 0 1
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
我想基于dataframe1的列名执行类似的操作,并使用零将相同的列名添加到dataset 2中
dataframe1.columns = [adult, adultold, old, old1, old2, old3, old4, old6]
dataframe2.columns = [adult, adultold, old2 old5]
if x in dataframe1.columns:
if y in dataframe2.columns:
pass
else:
dataframe2['y'] = (fill with zeros)
输出:
adult adultold old old1 old2 old3 old4 old6
0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0
我们能否按照df1中的顺序获得新的数据帧?如果输入是系列和新列名称的列名称列表,则可以使用:
如果输入是系列
和新列名称的列名称列表,则可以使用:
使用-
使用join而不是concat
adult adultold old old1 old2 old3 old4 old6
0 0 0 1 0 0 0 0 0
1 1 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 1 0 0 0 0 0 0 0
5 1 0 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0
输出
adult adultold old old1 old2 old3 old4 old6
0 0 0 1 0 0 0 0 0
1 1 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 1 0 0 0 0 0 0 0
5 1 0 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0
使用-
使用join而不是concat
adult adultold old old1 old2 old3 old4 old6
0 0 0 1 0 0 0 0 0
1 1 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 1 0 0 0 0 0 0 0
5 1 0 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0
输出
adult adultold old old1 old2 old3 old4 old6
0 0 0 1 0 0 0 0 0
1 1 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 1 0 0 0 0 0 0 0
5 1 0 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0
如果我只知道列名而不知道数据框,dataframe1\u columns=[成人、成人、老年、老年1、老年2、老年3、老年4、老年6]
@jezrael请解释一下。这是一个惊人的一行!当然,给我一点时间。@VivekKalyanarangan,对我来说,耶斯雷尔是个了不起的程序员。有很多东西要向他学习。谢谢你,杰兹。@pylearner haha同意我通常在他闪击的时候尽量不上路:-)如果我只知道列名而不知道数据框,dataframe1\u columns=[成年人、成年人、老年人、老年人、老年人1、老年人2、老年人3、老年人4、老年人6]
@jezrael请解释。这是一个惊人的一行!当然,给我一点时间。@VivekKalyanarangan,对我来说,耶斯雷尔是个了不起的程序员。有很多东西要向他学习。谢谢你,杰兹。@pylearner haha同意我通常在他闪击的时候尽量不上路:-)如果我只知道列名而不知道dataframe,dataframe1_columns=[成年人,成年人,老年人,老年人,老年人1,老年人2,老年人3,老年人4,老年人6]@pylearner根据最新的qstn,杰兹雷尔和我都记下了你需要的东西。这些解决方案与您想要的有什么不同?我根本没有dataframe1。。。我的案子里有一张名单。如果我只知道列名而不知道dataframe,dataframe1_columns=[成人、成人、老年人、老年人1、老年人2、老年人3、老年人4、老年人6]@pylearner根据最新的qstn,我和jezrael都写下了你需要的东西。这些解决方案与您想要的有什么不同?我根本没有dataframe1。。。我的案子里有一张名单。所以杰兹做到了。