使用for循环根据条件连接两行

时间:2019-07-04 10:48:01

标签: python pandas for-loop while-loop pandas-groupby

我正在尝试根据条件将字符串分为两行。我使用循环来合并值。

图像中给出了输入数据集和输出列

enter image description here

我用于循环将行中的值连接起来

DECLARE
  ids numbertabletype;
  vals VARCHAR2(3000);
BEGIN
  ids := LOOP_TEST();

  DBMS_OUTPUT.PUT_LINE( 'NUMBER OF IDs: ' || CASE WHEN ids IS NULL THEN 'NULL' ELSE TO_CHAR( ids.COUNT ) END );

  SELECT LISTAGG(COLUMN_VALUE,',') WITHIN GROUP( ORDER BY ROWNUM )
  INTO   vals
  FROM   TABLE(ids);

  DBMS_OUTPUT.PUT_LINE( 'values: ' || vals );
END;
/

在我的最终输出中,所有行都将合并。

enter image description here

1 个答案:

答案 0 :(得分:0)

虽然我想让您知道我还没有完全理解您的问题,但是在查看代码时,我看到以下可能会导致问题的错误。

for i in range(len(Data)):
  j=i+1
  while j < len(Data):
    if(Data['key (Sum(col1to6))'][i]!=Data['key (Sum(col1to6))'][j]):
      break;
    if (Data['key (Sum(col1to6))'][i]==Data['key (Sum(col1to6))'][j]) and Data['value'][i]<10:
      Data['ouput_code'][i]=Data['Col6'][i]+Data['Col6'][j]
    else: 
      #Data['ouput_code']=Data['Col6'] # <== Here you are over writing the whole ouput_code column 
      Data['ouput_code'][i]=Data['Col6'][i] # <== I believe what you want to do is update just one entry 
    j=j+1
print ('last',i)

那是你想做什么?

谢谢

相关问题