我想使用SAP系统中的数据来提供IForest模型。 为此,我使用RFC_READ_TABLE来获取数据。 RFC_READ_TABLE的输出是dict对象。 当我将dict对象放入pandas DataFrame中时,我没有得到所需的DataFrame,也不知道如何获取它。 我想要一个像这样的DataFrame:
Col1 Col2 Col3
0: val01 val02 val03
1: val11 val12 val13
但是获得一个像这样的DataFrame:
DATA
0 {'WA': '700,AA ,0017,US ,NEW YORK ,...
我想每个字段都在一个String中。字段应为700或AA。 而且我不能给列名称指定唯一的列是DATA。
我试图将RFC_READ_TABLE输出直接放入pd.DataFrame中。 失败了,因为输出给出了
result = conn.call('RFC_READ_TABLE',QUERY_TABLE='SPFLI',DELIMITER=',')
print(result)
Out:
{'DATA': [{'WA': '700,AA ,0017,US ,NEW YORK ,JFK,US ,SAN
FRANCISCO ,SFO, 361 ,110000,140100,2572.0000,MI , , 0'}......
'FIELDS': [{'FIELDNAME': 'MANDT', 'OFFSET': '000000', 'LENGTH':
'000003', 'TYPE': 'C', 'FIELDTEXT': 'Client'}, ......
'OPTIONS': []}
所以数据,字段和选项是关键,后面的所有内容都是字符串(我想)。为了摆脱“ FIELDS”和“ OPTIONS”,我这样做:
result = dict(list(result.items())[:1])
然后我将“结果”放入pd.DataFrame:
df = pd.DataFrame.from_dict(result)
print(df)
Out:
DATA
0 {'WA': '700,AA ,0017,US ,NEW YORK ,...
1 {'WA': '700,AA ,0064,US ,SAN FRANCISCO ,...
因此,不显示某些值,并且行中的每个字段都在一个字段中。 我想要这样的东西:
MANDT CARRID CONNID
0 700 AA 0017
1 700 AA 0064
以此类推。
我尝试过:
columnnames=['MANDT','CARRID','CONNID',...]
df = pd.DataFrame.from_dict(result,columns=columnnames)
但是得到:
ValueError:不能将列参数与orient ='columns'一起使用
所以我尝试了:
orient='index'
但是得到:
AssertionError:传递了16列,传递的数据有26列
我认为那不是我想要的。
表有26行。
答案 0 :(得分:0)
用于创建我有的字典。
d = {'DATA': [{'WA': '700,AA ,0017,US ,NEW YORK ,JFK,US ,SAN FRANCISCO
,SFO, 361 ,110000,140100,2572.0000,MI , , 0'}, {'WA': '700,AA ,0064,US ,SAN
FRANCISCO ,SFO,US ,NEW YORK ,JFK, 321
,090000,172100,2572.0000,MI , , 0'}, {'WA': '700,AZ ,0555,IT ,ROME
,FCO,DE ,FRANKFURT ,FRA, 125 ,190000,210500,845.0000 ,MI , , 0'},
{'WA': '700,AZ ,0788,IT ,ROME ,FCO,JP ,TOKYO ,TYO,
775 ,120000,085500,6130.0000,MI , , 1'}, {'WA': '700,AZ ,0789,JP ,TOKYO
,TYO,IT ,ROME ,FCO, 940 ,114500,192500,6130.0000,MI , , 0'},
{'WA': '700,AZ ,0790,IT ,ROME ,FCO,JP ,OSAKA ,KIX,
815 ,103500,081000,6030.0000,MI ,X, 1'}, {'WA': '700,DL ,0106,US ,NEW YORK
,JFK,DE ,FRANKFURT ,FRA, 475 ,193500,093000,3851.0000,MI , , 1'},
{'WA': '700,DL ,1699,US ,NEW YORK ,JFK,US ,SAN FRANCISCO ,SFO,
382 ,171500,203700,2572.0000,MI , , 0'}, {'WA': '700,DL ,1984,US ,SAN FRANCISCO
,SFO,US ,NEW YORK ,JFK, 325 ,100000,182500,2572.0000,MI , , 0'},
{'WA': '700,JL ,0407,JP ,TOKYO ,NRT,DE ,FRANKFURT ,FRA,
725 ,133000,173500,9100.0000,KM , , 0'}, {'WA': '700,JL ,0408,DE ,FRANKFURT
,FRA,JP ,TOKYO ,NRT, 675 ,202500,154000,9100.0000,KM ,X, 1'},
{'WA': '700,LH ,0400,DE ,FRANKFURT ,FRA,US ,NEW YORK ,JFK,
444 ,101000,113400,6162.0000,KM , , 0'}, {'WA': '700,LH ,0401,US ,NEW YORK
,JFK,DE ,FRANKFURT ,FRA, 435 ,183000,074500,6162.0000,KM , , 1'},
{'WA': '700,LH ,0402,DE ,FRANKFURT ,FRA,US ,NEW YORK ,JFK,
455 ,133000,150500,6162.0000,KM ,X, 0'}, {'WA': '700,LH ,2402,DE ,FRANKFURT
,FRA,DE ,BERLIN ,SXF, 65 ,103000,113500,555.0000 ,KM , , 0'},
{'WA': '700,LH ,2407,DE ,BERLIN ,TXL,DE ,FRANKFURT ,FRA,
65 ,071000,081500,555.0000 ,KM , , 0'}, {'WA': '700,QF ,0005,SG ,SINGAPORE
,SIN,DE ,FRANKFURT ,FRA, 825 ,225000,053500,*000.0000,KM , , 1'},
{'WA': '700,QF ,0006,DE ,FRANKFURT ,FRA,SG ,SINGAPORE ,SIN,
670 ,205500,150500,*000.0000,KM , , 1'}, {'WA': '700,SQ ,0002,SG ,SINGAPORE
,SIN,US ,SAN FRANCISCO ,SFO, 1105 ,170000,192500,8452.0000,MI , , 0'},
{'WA': '700,SQ ,0015,US ,SAN FRANCISCO ,SFO,SG ,SINGAPORE ,SIN,
1125 ,160000,024500,8452.0000,MI , , 2'}, {'WA': '700,SQ ,0158,SG ,SINGAPORE
,SIN,ID ,JAKARTA ,JKT, 95 ,152500,160000,560.0000 ,MI , , 0'},
{'WA': '700,SQ ,0988,SG ,SINGAPORE ,SIN,JP ,TOKYO ,TYO,
400 ,163500,001500,3125.0000,MI , , 1'}, {'WA': '700,UA ,0941,DE ,FRANKFURT
,FRA,US ,SAN FRANCISCO ,SFO, 696 ,143000,170600,5685.0000,MI , , 0'},
{'WA': '700,UA ,3504,US ,SAN FRANCISCO ,SFO,DE ,FRANKFURT ,FRA,
630 ,150000,103000,5685.0000,MI , , 1'}, {'WA': '700,UA ,3516,US ,NEW YORK
,JFK,DE ,FRANKFURT ,FRA, 445 ,162000,054500,6162.0000,KM , , 1'},
{'WA': '700,UA ,3517,DE ,FRANKFURT ,FRA,US ,NEW YORK ,JFK,
495 ,104000,125500,6162.0000,KM , , 0'}], 'FIELDS': [{'FIELDNAME': 'MANDT',
'OFFSET': '000000', 'LENGTH': '000003', 'TYPE': 'C', 'FIELDTEXT': 'Client'},
{'FIELDNAME': 'CARRID', 'OFFSET': '000004', 'LENGTH': '000003', 'TYPE': 'C',
'FIELDTEXT': 'Airline Code'}, {'FIELDNAME': 'CONNID', 'OFFSET': '000008',
'LENGTH': '000004', 'TYPE': 'N', 'FIELDTEXT': 'Flight Connection Number'},
{'FIELDNAME': 'COUNTRYFR', 'OFFSET': '000013', 'LENGTH': '000003', 'TYPE': 'C',
'FIELDTEXT': 'Country Key'}, {'FIELDNAME': 'CITYFROM', 'OFFSET': '000017',
'LENGTH': '000020', 'TYPE': 'C', 'FIELDTEXT': 'Departure city'}, {'FIELDNAME':
'AIRPFROM', 'OFFSET': '000038', 'LENGTH': '000003', 'TYPE': 'C', 'FIELDTEXT':
'Departure airport'}, {'FIELDNAME': 'COUNTRYTO', 'OFFSET': '000042', 'LENGTH':
'000003', 'TYPE': 'C', 'FIELDTEXT': 'Country Key'}, {'FIELDNAME': 'CITYTO',
'OFFSET': '000046', 'LENGTH': '000020', 'TYPE': 'C', 'FIELDTEXT': 'Arrival city'},
{'FIELDNAME': 'AIRPTO', 'OFFSET': '000067', 'LENGTH': '000003', 'TYPE': 'C',
'FIELDTEXT': 'Destination airport'}, {'FIELDNAME': 'FLTIME', 'OFFSET': '000071',
'LENGTH': '000010', 'TYPE': 'I', 'FIELDTEXT': 'Flight time'}, {'FIELDNAME':
'DEPTIME', 'OFFSET': '000082', 'LENGTH': '000006', 'TYPE': 'T', 'FIELDTEXT':
'Departure time'}, {'FIELDNAME': 'ARRTIME', 'OFFSET': '000089', 'LENGTH':
'000006', 'TYPE': 'T', 'FIELDTEXT': 'Arrival time'}, {'FIELDNAME': 'DISTANCE',
'OFFSET': '000096', 'LENGTH': '000009', 'TYPE': 'P', 'FIELDTEXT': 'Distance'},
{'FIELDNAME': 'DISTID', 'OFFSET': '000106', 'LENGTH': '000003', 'TYPE': 'C',
'FIELDTEXT': 'Mass unit of distance (kms, miles)'}, {'FIELDNAME': 'FLTYPE',
'OFFSET': '000110', 'LENGTH': '000001', 'TYPE': 'C', 'FIELDTEXT': 'Flight type'},
{'FIELDNAME': 'PERIOD', 'OFFSET': '000112', 'LENGTH': '000003', 'TYPE': 'b',
'FIELDTEXT': 'Arrival n day(s) later'}], 'OPTIONS': []}