Панды добавить столбец только с одной строкой - PullRequest
0 голосов
/ 05 октября 2018

Это звучит немного странно, но я думаю, что это именно то, что мне было нужно сейчас:

Я получил несколько панд данных, содержащих столбцы с числами с плавающей запятой, например:

   a  b  c
0  0  1  2
1  3  4  5
2  6  7  8

СейчасЯ хочу добавить столбец, содержащий только одну строку, и значение, равное среднему значению столбца «а», в данном случае равно 3,0.Таким образом, новый фрейм данных будет выглядеть так:

   a  b  c  average
0  0  1  2  3.0
1  3  4  5
2  6  7  8

И все строки ниже пусты.

Я пробовал что-то вроде df['average'] = np.mean(df['a']), но это дает мне целую колонку 3,0.Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Вот полный пример:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    [(0,1,2), (3,4,5), (6,7,8)],
    columns=['a', 'b', 'c'])
print(df)

   a  b  c
0  0  1  2
1  3  4  5
2  6  7  8

df['average'] = ''
df['average'][0] = df['a'].mean()
print(df)

   a  b  c average
0  0  1  2       3
1  3  4  5        
2  6  7  8  
0 голосов
/ 05 октября 2018

Назначить серию, это чище.

df['average'] = pd.Series(df['a'].mean(), index=df.index[[0]])

Или, что еще лучше, назначить с помощью loc:

df.loc[df.index[0], 'average'] = df['a'].mean().item()

Заполнение NaN просто, вы можете сделать

df['average'] = df['average'].fillna('')
df
   a  b  c average
0  0  1  2       3
1  3  4  5        
2  6  7  8        
0 голосов
/ 05 октября 2018

Может сделать что-то вроде:

df['average'] = [np.mean(df['a'])]+['']*(len(df)-1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...