Как панды переопределят разделитель по умолчанию - PullRequest
1 голос
/ 02 декабря 2019

Данные испытаний следующие:

import pandas as pd
import numpy as np

if __name__ == '__main__':
     ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
                     'kings', 'Kings', 'Kings', 'Riders', 'Royals', 
            'Royals', 'Riders'],
            'Rank': [1, 2, 2, 3, 3, 4, 1, 1, 2, 4, 1, 2],
            'Year': [2014, 2015, 2014, 2015, 2014, 2015, 2016, 2017, 2016, 
             2014, 2015, 2017],
            'Points': [876, 789, 863, 673, 741, 812, 756, 788, 694, 701, 
             804, 690]}
  df = pd.DataFrame(ipl_data)

Исходный формат панд выглядит следующим образом:

     Rank       Year     Points
0  -15.000000 -11.618950  12.843272
1    5.000000  -3.872983   3.020286
2   -7.071068  -7.071068   7.071068
3    7.071068   7.071068  -7.071068
4   11.547005 -10.910895  -8.608621

Но я надеюсь достичь следующих результатов:

  Rank       Year     Points
  @-15.000000;-11.618950;12.843272~@5.000000;-3.872983;3.020286~@-7.071068;-7.071068;7.071068~

Объяснение: символ @ обозначает начало строки данных, символ ~ обозначает конец строки данных;символ разделитель

Что мне делать, пожалуйста

1 Ответ

2 голосов
/ 02 декабря 2019

Попробуйте:

ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
                     'kings', 'Kings', 'Kings', 'Riders', 'Royals', 
            'Royals', 'Riders'],
            'Rank': [1, 2, 2, 3, 3, 4, 1, 1, 2, 4, 1, 2],
            'Year': [2014, 2015, 2014, 2015, 2014, 2015, 2016, 2017, 2016, 
             2014, 2015, 2017],
            'Points': [876, 789, 863, 673, 741, 812, 756, 788, 694, 701, 
             804, 690]}
df = pd.DataFrame(ipl_data)

def f(row):
    return '@'+';'.join(row.astype('str').tolist())+'~'

''.join(df.apply(f, axis=1).tolist())

Вывод:

'@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~@Riders;2;2017;690~'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...