Замените дублированные значения пробелами в пандах - PullRequest
0 голосов
/ 07 июня 2018

Я работаю над фреймом данных Pandas.Пример кода будет следующим: `import pandas as pd

df = pd.DataFrame(
                  {'name1': ['A', 'C', 'A', 'B','C', 'D','D', 'C', 'A', 'B','C', 'A'], 
                   'name2': ['B', 'D', 'C', 'D','B','A','A', 'D', 'C', 'D','D','B'], 
                   'id': [1, 1, 1, 1, 1, 1,2, 2, 2, 2, 2, 2], 
                   'Value1': [1, 2, 3, 4, 5, 6, 0, 2, 4, 6, 3, 5], 
                   'Value2': [0, 2, 4, 6, 3, 5, 1, 2, 3, 4, 5, 6]
                  },
                  columns=['name1','name2','id','Value1','Value2'])`

Я могу сделать агг, используя следующую группу:

m = df.groupby(['id','name1',])['Value1'].sum()

Когда я напечатал m , он будет отображаться следующим образом:

   id  name1
    1   A        4
        B        4
        C        7
        D        6
    2   A        9
        B        6
        C        5
        D        0
    Name: Value1, dtype: int64

Когда я записал m в файл CSV, он будет содержать только значение 1, поскольку это серия панд.Используя эту серию, я хочу создать фрейм данных, точно такой же, как таблица ниже

  id name1  Value1
  1     A      4
  1     B      4
  1     C      7
  1     D      6
  2     A      9
  2     B      6
  2     C      5
  2     D      0

Кто-нибудь посоветует мне, как это сделать?Большое спасибо Zep

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

просто,

 #reseting the index
 m = m.sort_index().reset_index()
 #masking duplicated value with empty
 m['id']=m['id'].mask(m['id'].duplicated(),"")
 #writing dataframe to a csv file
 m.to_csv("output.csv",index=False)
0 голосов
/ 07 июня 2018

Если вам нужно сохранить в CSV, вот взлом, который вы можете использовать для исправления дисплея перед сохранением.

m = m.sort_index().reset_index()
m['id'] = m['id'].mask(m['id'].ne(m['id'].shift()).cumsum().duplicated(), '')

print(m)
  id name1  Value1
0  1     A       4
1        B       4
2        C       7
3        D       6
4  2     A       9
5        B       6
6        C       5
7        D       0

m.to_csv('file.csv')

Отказ от ответственности;если вы делаете что-то кроме сохранения, не запустите это заранее.

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