📜  to_csv 删除索引 - Python (1)

📅  最后修改于: 2023-12-03 15:35:21.122000             🧑  作者: Mango

以'to_csv'删除索引 - Python

在Python中使用Pandas库中的to_csv函数时,可能会遇到保存DataFrame时出现索引列的问题。例如,我们有以下示例数据:

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

保存DataFrame时,to_csv默认会将索引列也保存下来,导致数据变形。原始数据如下:

   A  B
0  1  4
1  2  5
2  3  6

使用to_csv保存后的数据:

, A, B
0, 1, 4
1, 2, 5
2, 3, 6

为了让保存后的数据不包含索引列,有以下几种方法。

方法一:设置index参数为False

可以在to_csv函数中设置index参数为False,这样就可以去掉索引列。示例如下:

df.to_csv('data.csv', index=False)

保存后的数据如下:

A,B
1,4
2,5
3,6
方法二:删除索引列

另一种方法是手动删除索引列,然后再保存DataFrame。示例如下:

df = pd.DataFrame(data)
del df.index.name  # 删除索引名称
df.reset_index(inplace=True, drop=True)  # 重置索引列
df.to_csv('data.csv', index=False)

保存后的数据与方法一保存后的数据一样:

A,B
1,4
2,5
3,6
方法三:不使用to_csv函数

此外,我们还可以使用Python的csv模块来保存DataFrame,这样就不会出现索引列了。示例如下:

import csv

data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)

with open('data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(df.columns)  # 写入列名
    
    for row in df.values:
        writer.writerow(row)  # 写入每一行数据

保存后的数据仍然是原始的数据,不包含索引列:

A,B
1,4
2,5
3,6

这三种方法均可以去掉保存DataFrame时出现的索引列,选择哪种方法可以根据具体情况和需求来决定。