Как вставить значение из ввода в определенную c строку и столбец в pandas фрейм данных - PullRequest
0 голосов
/ 10 июля 2020

Мне нужна помощь.

У меня есть фрейм данных, например:

A B C D
1 2 3 
5 6 7 
5 7 5

И я хотел бы с помощью python получать значения D из ввода:

например

for i in df.iterlupes():
    d= input(" put the number:")
    df["d"] = d

, а затем, например, я введу 1 2 3, у меня будет:

A B C D
1 2 3 1
5 6 7 2
5 7 5 3

Как я могу это сделать, пожалуйста? Большое спасибо !!!

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Надеюсь, это именно то, что вы ищете:

import pandas as pd 
df = pd.DataFrame({"A":[1, 5, 5], 
                   "B":[2, 6, 7],  
                   "C":[3, 7, 5], 
                   "D":[" "]*3})
print (df)
for e in range (3):
    d= input(" put the number:")
    df.at[e,'D']=d
print (df)

Результат:

   A  B  C  D
0  1  2  3   
1  5  6  7   
2  5  7  5   
 put the number:1
 put the number:2
 put the number:3
   A  B  C  D
0  1  2  3  1
1  5  6  7  2
2  5  7  5  3

Окончательный код для вашего примера (на основе комментария):

def enter_new_column(df, name): 
    for e in range (df.shape[0]):
        d= input(" put the number: ")
        df.at[e,name]=d
        
enter_new_column(devis, "Quantité") 
0 голосов
/ 10 июля 2020

Думаю, я знаю, о чем вы спрашиваете, хотя понятия не имею, что должно означать .interlupes().

То, что вы хотите сделать, относительно просто, вы хотите записывать вводимые пользователем данные и размещать их в место в фрейме данных. Что вы не разъяснили, так это то, как вы собираете, куда их помещать.

В вашем примере вот что вы могли бы сделать:

import pandas as pd
df = pd.DataFrame({"A":[1,5,5],"B":[2,6,7],"C":[3,7,5]})

def enter_new_column(df, name, print_column):

    # loop over length of the rows
    temp_arr = []
    for i in range(df.shape[0]):
        temp_arr.append(input(f"Put the Number for the value {df[print_column][i]}: "))
    df[name] = temp_arr

enter_new_column(df=df, name="D", print_column="Intitulé_complet")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...