Заполнение DataFrame для панд с использованием меток столбцов и индексов - PullRequest
0 голосов
/ 08 октября 2019

Я установил пустой DataFrame для панд с числовым столбцом и индексными метками:

cols = np.array([30, 40, 50])
x = np.linspace(0.1,0.6,6)
df = pd.DataFrame(columns=cols, index=x)

Для данной функции

def func(x, b, alpha=5): 
    return x**2 + b*alpha

как мне заполнить df? Я попытался

df.update(func(x, cols[:,None]))

Но ничего не вернулось и осталось df, содержащее NaN с. Я знаю, что могу циклически перемещаться по столбцам, но в NumPy это было бы возможно с широковещательной передачей, и я хотел бы сделать то же самое в пандах.

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Вы можете просто зацикливаться на этом.

for index in df.index:
    for columns in df.columns:
        df.loc[index, columns]= func(index, columns)

Я пока не могу комментировать ответы, но второй ответ тоже работает. Единственная проблема с ним заключается в том, что он переключил столбцы и индексы в конце. Это должно быть

for ind in df.index:
    df.at[ind, col] = ind**2 + col*alpha
0 голосов
/ 08 октября 2019

Я думаю, вы ищете что-то вроде этого.

def func(df):
    alpha = 5 
    for col in df.columns:
        for ind in df.index:
            df.at[ind, col] = col**2 + ind*alpha
func(df)

Вывод

         30       40    50
0.1     900.5   1600.5  2500.5
0.2     901     1601    2501
0.3     901.5   1601.5  2501.5
0.4     902     1602    2502
0.5     902.5   1602.5  2502.5
0.6     903     1603    2503
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...