Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据条件创建列_Python_Python 3.x_Pandas - Fatal编程技术网

Python 根据条件创建列

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

我有一个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    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。。。我的案子里有一张名单。所以杰兹做到了。