首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS将数据集设置为Python

SAS将数据集设置为Python
EN

Stack Overflow用户
提问于 2021-03-24 15:38:26
回答 1查看 178关注 0票数 1

我有2个sas数据集,我使用SET语句将它们通过键列组合成一个新的数据集。以下是数据的外观(注意:'.‘)是缺失或空值)

代码语言:javascript
复制
data1       data2  
ID X  Y     ID  X  Z
01 12 11    01  .  4
02 15 .     03 17  6
            03 18  .

data combine;
set data1 data2;
by id;
run;

输出数据集“组合”的结果如下:

代码语言:javascript
复制
combine
ID  X  Y  Z
01 12  11  .
01 .   .   4
02 15  .   .
03 17  .   6
03 18  .   .

有人能让我知道如何用Pandas/Python来完成这个任务吗?我尝试使用pd.concat(),但这并没有提供上面所需的输出。感谢有谁能帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-24 15:44:01

concat

代码语言:javascript
复制
pd.concat([data1, data2], ignore_index=True).sort_values('ID')

   ID     X     Y    Z
0  01  12.0  11.0  NaN
2  01   NaN   NaN  4.0
1  02  15.0   NaN  NaN
3  03  17.0   NaN  6.0
4  03  18.0   NaN  NaN

append

代码语言:javascript
复制
data1.append(data2, ignore_index=True).sort_values('ID')

   ID     X     Y    Z
0  01  12.0  11.0  NaN
2  01   NaN   NaN  4.0
1  02  15.0   NaN  NaN
3  03  17.0   NaN  6.0
4  03  18.0   NaN  NaN

对评论的答复

Sorry...basically,我只需要一个“标志”来表示来自'data1‘和data2的数据。简单地说,创建一个名为“标志”的新变量,如果数据来自data1,则将其赋值给1,并为来自data2的数据分配值2。希望又是clear...Thanks!- user11580242

您可以使用concat

代码语言:javascript
复制
pd.concat({1: data1, 2: data2}, names=['flag']).reset_index('flag').sort_values('ID')

   flag  ID     X     Y    Z
0     1  01  12.0  11.0  NaN
0     2  01   NaN   NaN  4.0
1     1  02  15.0   NaN  NaN
1     2  03  17.0   NaN  6.0
2     2  03  18.0   NaN  NaN
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66784459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档