Mam istniejącą ramkę danych, którą muszę dodać dodatkową kolumnę, do której będzie zawierać tę samą wartość dla każdego wiersza.
Istniejące df:
Date, Open, High, Low, Close
01-01-2015, 565, 600, 400, 450
Nowy plik df:
Name, Date, Open, High, Low, Close
abc, 01-01-2015, 565, 600, 400, 450
Wiem, jak dołączyć istniejącą kolumnę serii / ramki danych. Jest to jednak inna sytuacja, ponieważ wszystko, czego potrzebuję, to dodać kolumnę „Nazwa” i ustawić każdy wiersz na tę samą wartość, w tym przypadku „abc”.
.copy()
przed jej użyciem (chyba że jest ogromna lub coś lub wydajność naprawdę się liczy).Możesz użyć,
insert
aby określić, gdzie ma być nowa kolumna. W tym przypadku używam0
do umieszczenia nowej kolumny po lewej stronie.źródło
df.insert(0,'coef_fix',1)
. Używam JupyterLab z Python 3.0insert
działainplace
. Oznacza to, że wartość nowej ramki danych nie jest zwracana, ale oryginalna ramka danych została zmodyfikowana. Spróbuj tegodf = pd.DataFrame(0, range(1460), range(41)); df.insert(0, 'coef_fix', 1); df
Działa pojedyncza wkładka
Tworzy
Name
kolumnę i ustawia wszystkie wiersze naabc
wartościźródło
Podsumowując to, co zasugerowali inni, i dodając trzeci sposób
Możesz:
przypisać (** kwargs) :
wejdź do nowej serii kolumn (zostanie utworzona) i ustaw ją:
insert (loc, column, value, allow_duplicates = False)
gdzie argument loc (0 <= loc <= len (kolumny)) pozwala wstawić kolumnę tam, gdzie chcesz.
„loc” daje indeks, w którym będzie kolumna po wstawieniu. Na przykład powyższy kod wstawia nazwę kolumny jako kolumnę 0, tzn. Zostanie wstawiona przed pierwszą kolumną, stając się nową pierwszą kolumną. (Indeksowanie zaczyna się od 0).
Wszystkie te metody pozwalają również dodać nową kolumnę z Serii (wystarczy zastąpić domyślny argument „abc” powyżej serią).
źródło