Python 将行数据转换为分组数据
我有一个关于转换数据的问题 如果我的数据如下所示:Python 将行数据转换为分组数据,python,python-3.x,database,sas,Python,Python 3.x,Database,Sas,我有一个关于转换数据的问题 如果我的数据如下所示: Variable A 130 130 130 Variable B 56 57 58 Variable C 1100 1200 1300 在文本文件中,我想将其转换为如下内容: Variable A Variable B Variable C 130 56 1100 130 57 1200 130 58 1300
Variable A
130
130
130
Variable B
56
57
58
Variable C
1100
1200
1300
在文本文件中,我想将其转换为如下内容:
Variable A Variable B Variable C
130 56 1100
130 57 1200
130 58 1300
我该怎么办 您的数据是以列为中心的,而SAS数据集是以行为中心的,因此在某些时候需要一个数据透视 最通用的流程是:
- 将数据输入到名称:值对的多行中
- 计算每对的序列值(行号)
- 对输入进行排序
- 按行转置
* construct a demonstration input data file;
* every data value in this construction is via +1 to allow
* examination of the reshaping;
filename havedata temp;
data _null_;
file havedata;
call streaminit(123);
do varname = 'A', 'B', 'C', 'D', 'X', 'Y', 'Z';
put 'Variable ' varname;
do _n_ = 1 to 100 + rand('uniform',20);
value + 1;
put value;
end;
end;
run;
* read the demo file;
data want_input;
infile havedata;
length rownumber 8 name $32 value 8;
retain name;
input @;
if _infile_ =: 'Variable' then do; /* detect variable landmark in data file */
rownumber = 0;
name = substr(_infile_, length('Variable')+1);
delete;
end;
rownumber + 1;
input @1 value;
run;
proc sort data=want_input;
by rownumber name;
run;
proc transpose data=want_input out=want(drop=_name_ rownumber);
by rownumber;
id name;
var value;
run;
如果数据文件变量“blocks”是字符或日期表示形式,事情将更加复杂。这取决于。。它们是每个变量的单独文本文件,还是一个由空行分隔的文件?查看pandas和从文本文件加载数据的
read_table
函数,这在很大程度上取决于这些文件是多个文件还是单个文件\