当我将“国家/地区”列设为索引时,其余行变得很奇怪,并且它将每个国家/地区显示为一个元组,我怀疑是因为它组合了多索引的不同级别。 我还想让“国家/地区类型”列的标题正确显示,但我不确定如何设置标签并摆脱那些未命名的级别。
TIA 给任何可以帮助我的人。
也许我错了,但我想象/假设您正在这样阅读多标题电子表格:
df = pd.read_excel("file.xlsx", header=[0, 1, 2])
你可以试试这个:
df = (
pd.read_excel("file.xlsx", index_col=[0, 1], header=[0, 1, 2]) # 1st chain
.rename_axis(index=["Country", "Country Type"], columns=[None]*3)
)
df.index.nlevels # should be 2 (previously 1)
df.columns.nlevels # should be 3
如果您不处理 Excel 文件,请将第一链替换为
df.set_index(list(df.columns[:2]))
。
您可以在加载数据后重命名所有列。具有相同名称的列不会让它高兴。 尝试这样的事情:
import pandas as pd
#proper non repeated column names
column_names = ["new_column_name1", "new_column_name2", "new_column_name3"]
data = pd.read_csv("your_data.csv", names=column_names, header=None)
#proper data_types
data_types = {
"new_column_name1": str, # Example: Integer data type
"new_column_name2": float, # Example: Float data type
"new_column_name3": int, # Example: Float data type
}
# Set data types
data = data.astype(data_types)
# Use the first column as the index
data = data.set_index("new_column_name1")
# Reindex the DataFrame
data = data.reindex(drop=True)