Объединить две строки на основе условия, используя цикл for - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь объединить строки в две строки на основе условия. Я использовал цикл для слияния значений.

Входной набор данных и выходной столбец приведены на рисунке

enter image description here

Я использовал цикл для объединения значений в строках

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']
   j=j+1
   print ('last',i)

В моем конечном выводе все строки объединяются.

enter image description here

1 Ответ

0 голосов
/ 04 июля 2019

Хотя я хочу сообщить вам, что я не полностью понял ваш вопрос, но, глядя на код, я вижу следующую ошибку, которая может вызвать у вас проблему.

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)

Это то, что вы хотели сделать?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...