python - Pandas 多索引到 csv 文件

标签 python pandas

如果我将多索引数据帧输出到 csv,为什么我的第一个索引会重复?

我的数据框:

In [1]: \
import numpy as np
import pandas as pd 
df = pd.DataFrame({
    'index1': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
    'index2': [1, 2, 3, 4, 1, 2, 3, 4],
    'column1': np.random.randint(2, size=8),
    'column2': np.random.randint(2, size=8),
    'column3': np.random.randint(2, size=8)
}).set_index(['index1', 'index2'])

Out[2]: \ 
print(df)
               column1  column2  column3
index1 index2                           
A      1             1        1        1
       2             0        1        1
       3             1        0        1
       4             0        0        0
B      1             0        1        0
       2             1        1        0
       3             0        0        0
       4             1        1        1

以下是我将数据帧输出为 csv 文件时得到的结果。

输出(csv 文件):

                 column1   column2 column3
    index1  index2
    A         1       
    A         2
    A         3
    A         4
    B         1
    B         2
    B         3
    B         4

我想以与第一个代码片段中的数据框完全相同的格式输出 csv 文件。

最佳答案

第一个索引是重复的,因为那是数据在引擎盖下的样子,pandas 只是以这种方式格式化它以使其更容易阅读。当您调用“to_csv”时,将输出原始数据。要执行您想要的操作,您可以重置索引,然后将该列中的重复值替换为空白。

df.reset_index(inplace=True)
df.loc[df['index1'].duplicated(), 'index1'] = ''
df.to_csv('mycsv.csv', index=False)

关于python - Pandas 多索引到 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55050841/

相关文章:

python - sklearn LabelEncoder 中的标签不一致?

python - 如何让 numpy 函数接受我的对象作为输入?

python - 合并两个数据框并根据合并添加新列

python - 如何划分多索引数据框中的数据

python - 如何在 SQLAlchemy 中定义与同一张表的两个关系

python - 试图让 dict 表现得像一个干净的类/方法结构

python - 在一个单元格中转换具有多个值的数据框

python - 使用 Pandas 将分类变量转换为整数

Python 装饰器 staticmethod 对象不可调用

python - 具有自定义分位数的 Groupby 数据框并将分位数标签添加到新列