Tworzenie DataFrame z Series ze zmienioną nazwą kolumny

0

Takie coś:

s = pd.Series(range(10, 14), range(4))
pd.DataFrame(s, columns=["colname"])

działa ładnie. Ale takie coś:

df = pd.DataFrame(inflation, columns=["inflation"])
print(df)

Empty DataFrame
Columns: [inflation]
Index: []

już nie. inflation jest ciężkie w zreprodukowaniu, bo pochodzi z excela po wielu przekształceniach, ale tyle wiemy:

print(type(inflation))

<class 'pandas.core.series.Series'>

print(inflation)

2012 0.0000
2013 0.0000
2014 0.0000
2015 0.0000
2016 0.0000
2017 0.0000
2018 0.0000
Name: INFLATION_EUR, dtype: float64

Ktoś ma pomysł o co może chodzić?

0

Obiekt jest pusty, bo opcjonalny argument columns służy do tego, aby wykorzystać parametry tej opcji do stworzenia obiektu typu DataFrame. Ponieważ nie ma w Twoim szeregu kolumny o nazwie inflation, to wynikiem jest pusty DataFrame. Podsumowując, najpierw stwórz obiekt, a potem zmień nazwę kolumny:

df = pd.DataFrame(inflation)
df.columns = ["inflation"]
0
Pyxis napisał(a):

Obiekt jest pusty, bo opcjonalny argument columns służy do tego, aby wykorzystać parametry tej opcji do stworzenia obiektu typu DataFrame. Ponieważ nie ma w Twoim szeregu kolumny o nazwie inflation, to wynikiem jest pusty DataFrame. Podsumowując, najpierw stwórz obiekt, a potem zmień nazwę kolumny:

df = pd.DataFrame(inflation)
df.columns = ["inflation"]

a w tym szeregu

s = pd.Series(range(10, 14), range(4))

też nie ma kolumny o nazwie colname a jednak tworzy niepusty DataFrame:

pd.DataFrame(s, columns=["colname"])
2

W przypadku zmiennej inflation miałeś już nadaną nazwę INFLATION_EUR. Nadaj szeregowi s nazwę i się przekonasz, że dostaniesz pusty DataFrame.

1 użytkowników online, w tym zalogowanych: 0, gości: 1