[PYTHON] Exportieren Sie den Pandas-Datenrahmen nach Excel

Verwenden Sie pandas'to_excel`, um den Datenrahmen nach Excel zu exportieren.

Stellen Sie zunächst sicher, dass Sie die erforderlichen Python-Module importieren können.

import pandas as pd
import matplotlib.pyplot as plt
from pandas.io import wb
import xlsxwriter

Daten lesen

Verwenden Sie die Weltbank-API, um die Bevölkerung und das BIP der USA und Japans zu ermitteln. Die Indikatorzeichenfolge wird von der Weltbank-API abgerufen.

df_gdp = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'JP'], start=1960, end=2013)
df_population = wb.download(indicator='SP.POP.TOTL', country=['US', 'JP'], start=1960, end=2013)

Bestätigung der Daten

df_gdp.head(3)
NY.GDP.PCAP.KD
country year
Japan 2013 37432.840747
2012 36800.922307
2011 36203.430066
df_gdp.dtypes
NY.GDP.PCAP.KD    float64
dtype: object
df_gdp.index

MultiIndex(levels=[['Japan', 'United States'], ['1960', '1961', '1962', '1963', '1964', '1965', '1966', '1967', '1968', '1969', '1970', '1971', '1972', '1973', '1974', '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992', '1993', '1994', '1995', '1996', '1997', '1998', '1999', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013']],
           labels=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...], [53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, ...]],
           names=['country', 'year'])
df_gdp.describe()
NY.GDP.PCAP.KD
count 108.000000
mean 28015.188967
std 10061.123534
min 7079.439251
25% 20152.131354
50% 28858.039661
75% 35165.327764
max 45863.019564

Der BIP-Datenrahmen lautet:

Der Bevölkerungsdatenrahmen hat eine ähnliche Struktur.

Daten formatieren

Formatieren Sie die Daten, da die Verwendung schwierig ist.

df_gdp.unstack(level=0).head(3)
NY.GDP.PCAP.KD
country Japan United States
year
1960 7079.439251 15469.072967
1961 7728.000388 15564.690585
1962 8338.409056 16262.092906
df_gdp.unstack(level=0).describe()
NY.GDP.PCAP.KD
Japan United States
count 54.000000 54.000000
mean 25134.970999 30895.406935
std 9716.583553 9646.035006
min 7079.439251 15469.072967
25% 17457.921985 22981.450242
50% 26005.632842 30462.082595
75% 33991.192095 40658.654684
max 37432.840747 45863.019564
df_gdp.unstack(level=0).plot(figsize=(16, 4), colormap='seismic')

worldbank_to_excel_16_1.png

Bevölkerungsdaten werden auf die gleiche Weise konvertiert.

df_population.unstack(level=0).head(3)
SP.POP.TOTL
country Japan United States
year
1960 92500572 180671000
1961 94943000 183691000
1962 95832000 186538000
ax = df_population.unstack(level=0).plot(figsize=(16, 4), colormap='seismic')

worldbank_to_excel_19_0.png

Bei der Berechnung des gleitenden Fünfjahresdurchschnitts ist ein wenig klar, dass die Bevölkerung der Vereinigten Staaten zunimmt und die Japans flach ist.

ax = pd.stats.moments.rolling_mean(df_population.unstack(level=0), 5).plot(figsize=(16, 4), colormap='seismic')

worldbank_to_excel_21_0.png

ax = pd.stats.moments.rolling_std(df_population.unstack(level=0)['SP.POP.TOTL'], 5).plot(figsize=(16, 4), colormap='seismic')

worldbank_to_excel_22_0.png

Daten kombinieren

Kombiniert zwei Datenrahmen.

pd.concat([df_gdp, df_population], axis=1).unstack(level=0).head(3)
NY.GDP.PCAP.KD SP.POP.TOTL
country Japan United States Japan United States
year
1960 7079.439251 15469.072967 92500572 180671000
1961 7728.000388 15564.690585 94943000 183691000
1962 8338.409056 16262.092906 95832000 186538000
df = pd.concat([df_gdp, df_population], axis=1).unstack(level=0)
df.describe()
NY.GDP.PCAP.KD SP.POP.TOTL
Japan United States Japan United States
count 54.000000 54.000000 5.400000e+01 5.400000e+01
mean 25134.970999 30895.406935 1.171442e+08 2.460156e+08
std 9716.583553 9646.035006 1.115320e+07 4.038823e+07
min 7079.439251 15469.072967 9.250057e+07 1.806710e+08
25% 17457.921985 22981.450242 1.085998e+08 2.123952e+08
50% 26005.632842 30462.082595 1.217915e+08 2.412110e+08
75% 33991.192095 40658.654684 1.268150e+08 2.813818e+08
max 37432.840747 45863.019564 1.278173e+08 3.161288e+08

Zeichnen wir ein Diagramm mit dem BIP auf der linken Achse und der Bevölkerung auf der rechten Achse.

ax = df.plot(figsize=(16, 6), colormap='seismic',
                 secondary_y=[('SP.POP.TOTL', 'Japan'), ('SP.POP.TOTL', 'United States')])
    ax.set_ylabel('GDP')
    _ = ax.right_ax.set_ylabel('Population')

worldbank_to_excel_28_0.png

Es kann jetzt in einem einzigen Datenrahmen behandelt werden.

Wenn man die Diversifikation in 5-Jahres-Schritten berechnet, kann man sagen, dass Japans Bevölkerung seit etwa 1980 schwach ist und das BIP seit etwa 1995 flach ist. In den Vereinigten Staaten gab es um 1990 eine Welle des Bevölkerungswachstums, und der Anstieg des BIP erreichte um das Jahr 2000 seinen Höhepunkt, und man kann sagen, dass es regelmäßige Wellen gibt.

ax = pd.stats.moments.rolling_var(df, 5).plot(subplots=True, layout=(2, 2), figsize=(16, 6))

worldbank_to_excel_31_0.png

Datenausgabe

Ausgabe nach Excel. Rufen Sie die Methode des Datenrahmens auf, aber "xlsxwriter" Das Excel-Exportmodul, wie es installiert werden muss.

df.to_excel('/data/sample.xlsx', sheet_name='Japan_US')
%ls /data
sample.xlsx

Bitte öffnen Sie die ausgefüllten Daten in Excel. Sie können auch LibreOffice verwenden.

Beim Exportieren mehrerer Datenrahmen in separate Blätter ist das Argument ein Writer-Objekt (ExcelWriter) anstelle des Dateinamens. Angegeben. Es gibt ein Beispiel in der offiziellen Dokumentation, aber suchen Sie nach weiteren Informationen, wie z. B. Stapelüberlauf.

Betriebsumgebung

SoftwareVersion
Python3.4.2 64bit [GCC 4.9.1]
IPython2.3.1
OSLinux 3.13.0 24 generic x86_64 with debian 8.0
numpy1.9.1
pandas0.15.1
matplotlib1.4.2
xlsxwriter0.6.4
Mon Dec 08 15:50:50 2014 UTC
$ ipython nbconvert --to markdown /data/worldbank_to_excel.ipynb

Recommended Posts

Exportieren Sie den Pandas-Datenrahmen nach Excel
Excel-> Pandas-> SQLite
[Pandas] Erweitern Sie die Zeichenfolgen zu DataFrame
[Python] Fügen Sie Pandas DataFrame insgesamt Zeilen hinzu
Erstellen Sie mit Pandas einen Datenrahmen aus Excel
[Python] Wie man Excel-Dateien mit Pandas liest
[Python] Erstellen Sie eine Tabelle von Pandas DataFrame zu Postgres
Verwendung von Pandas 2
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Konvertieren Sie json in Excel
Python-Anwendung: Pandas # 3: Dataframe
Konvertieren Sie durch Kommas getrennte numerische Zeichenfolgen in Zahlen in Pandas DataFrame
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
Versuchen Sie, eine Excel-Datei mit Python (Pandas / XlsxWriter) zu betreiben
Versuchen Sie, eine Excel-Datei mit Python (Pandas / XlsxWriter) zu betreiben
Wichtige Ergänzungen zu den Pandas 1.1.0 und 1.0.0
Kombinieren Sie Listen zu einem DataFrame mit Pandas
Wie man Pandas Rolling benutzt
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
7rep - Datenrahmen in Elasitcsearch einfügen
So fügen Sie eine CSV-Datei mit Pandas in eine Excel-Datei ein
Zu beachtende Punkte, wenn Pandas CSV der Excel-Ausgabe lesen
python / pandas / dataframe / So erhalten Sie die einfachste Zeile / Spalte / Index / Spalte
[Python] So fügen Sie einer Tabelle Zeilen und Spalten hinzu (pandas DataFrame)
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
Python-Handspiel (Pandas / DataFrame-Beginn)
Pandas / DataFrame-Tipps für den praktischen Gebrauch
Funktion zum Konvertieren von Excel-Spalten in Zahlen
[Python] Operationsnotiz von Pandas DataFrame
[Pandas] Speichern Sie DataFrame als JSON, laden Sie JSON als DataFrame
[Python] Verwendung der Pandas-Serie
Erstellen Sie einen Pandas-Datenrahmen aus einer Zeichenfolge.
Speichern Sie pandas.DataFrame per Blatt in Excel
Exportieren Sie Google Analytics Standard nach BigQuery
Konvertieren Sie die Liste mit Python in DataFrame
[Einführung in Python] Verwenden wir Pandas
Bulk Insert Pandas DataFrame mit psycopg2
Ich möchte ○○ mit Pandas machen
[Einführung in Python] Verwenden wir Pandas
Excel, CSV Import / Export mit Django
[Einführung in Python] Verwenden wir Pandas
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
[Python / Tkinter] Suche nach Pandas DataFrame → Erstellen Sie ein einfaches Suchformular zur Anzeige