Панды, перебрать каждую строку столбца и добавить строку в следующий столбец предыдущего ряда - PullRequest
0 голосов
/ 07 сентября 2018

Я выполнил эту задачу через Excel, но мне потребовалось немало времени, чтобы перебрать 300 000 строк данных, поэтому я надеялся, что смогу сделать это намного быстрее, используя python.

То, что у меня есть, похоже на следующий фрейм данных,

               PartID   Notes   
0                 1       Fiv  
1                 2       Six  
2                 3       Pot  
3                 4       Lep  
4           Date is       New      

Проблема в том, что мне дали файл, в котором в PartID есть строки, поэтому в индексе 4 есть «Дата», которая должна быть в разделе «Примечания». В Excel я использовал функцию значения, чтобы изменить все на значения, чтобы числа стали значениями, а текст - пустыми. Затем я использовал макрос, чтобы сказать, что строка ниже пуста, а затем добавить данные в столбец «Примечания» в строке выше, и результат будет выглядеть следующим образом:

               PartID  Notes      
0                 1      Fiv     
1                 2      Six     
2                 3      Pot     
3                 4 Lep Date is  
4                 5      New     

Есть ли способ сделать то же самое в Python, используя панд?

Спасибо!

1 Ответ

0 голосов
/ 07 сентября 2018

Я думаю, что вам нужно, pd.to_numeric и pd.Series.shift

a=df['PartID'].shift(-1).fillna('')

b=df['Notes']+a.loc[pd.to_numeric(a,errors='coerce').isnull()]

df['Notes']=b.combine_first(df['Notes'])

df['PartID']=np.arange(1,len(df['Notes'])+1)
print(df)
PartID  Notes      
    1      Fiv     
    2      Six     
    3      Pot     
    4     Lep Date is  
    5      New     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...