Ich möchte eine Tabelle mit mehreren Kopfzeilenzeilen wie der folgenden im CSV-Format ausgeben.
Ich werde den Artikel als Memorandum veröffentlichen.
to_csv
von DataFramedf = pandas.DataFrame({
("Alice","Math"): [80,81],
("Alice","English"): [90,91],
("Bob","Math"): [70,71]
})
print(df)
# Alice Bob
# Math English Math
# 0 80 90 70
# 1 81 91 71
print(df.columns)
# MultiIndex([('Alice', 'Math'),
# ('Alice', 'English'),
# ( 'Bob', 'Math')],
# )
index = pandas.MultiIndex.from_tuples([
("Alice","Math"),
("Alice","English"),
("Bob","Math")
])
df2 = pandas.DataFrame([[80,90,70],[81,91,71]], columns=index)
print(df2)
# Alice Bob
# Math English Math
# 0 80 90 70
# 1 81 91 71
print(df2.columns)
# MultiIndex([('Alice', 'Math'),
# ('Alice', 'English'),
# ( 'Bob', 'Math')],
# )
Wenn das Konstruktorargument Spalten
Keine ist, lautet der Typ der Eigenschaft Spalten`` Index
und es ist nicht möglich, mit einem mehrzeiligen Header auszugeben.
df3 = pandas.DataFrame(
[
{("Alice","Math"):80, ("Alice","English"):90,("Bob","Math"):70},
{("Alice","Math"):81, ("Alice","English"):91,("Bob","Math"):71},
]
)
print(df3)
# (Alice, Math) (Alice, English) (Bob, Math)
# 0 80 90 70
# 1 81 91 71
print(df3.columns)
# Index([('Alice', 'Math'), ('Alice', 'English'), ('Bob', 'Math')], dtype='object')
Sie können einen mehrzeiligen Header ausgeben, indem Sie "MultiIndex" im Argument "Spalten" übergeben.
index = pandas.MultiIndex.from_tuples([
("Alice","Math"),
("Alice","English"),
("Bob","Math")
])
df3 = pandas.DataFrame(
[
{("Alice","Math"):80, ("Alice","English"):90,("Bob","Math"):70},
{("Alice","Math"):81, ("Alice","English"):91,("Bob","Math"):71},
]
,columns=index
)
print(df3)
# Alice Bob
# Math English Math
# 0 80 90 70
# 1 81 91 71
df.to_csv("foo.csv", index=False)
foo.csv
Alice,Alice,Bob
Math,English,Math
80,90,70
81,91,71
Recommended Posts