วิธีหลีกเลี่ยง Python / Pandas สร้างดัชนีใน csv ที่บันทึกไว้ได้อย่างไร


407

ฉันพยายามบันทึก csv ไปยังโฟลเดอร์หลังจากทำการแก้ไขไฟล์

ทุกครั้งที่ฉันใช้pd.to_csv('C:/Path of file.csv')ไฟล์ csv จะมีคอลัมน์ของดัชนีแยกต่างหาก ฉันต้องการหลีกเลี่ยงการพิมพ์ดัชนีไปยัง csv

ฉันเหนื่อย:

pd.read_csv('C:/Path to file to edit.csv', index_col = False)

และเพื่อบันทึกไฟล์ ...

pd.to_csv('C:/Path to save edited file.csv', index_col = False)

อย่างไรก็ตามฉันยังมีคอลัมน์ดัชนีที่ไม่ต้องการ ฉันจะหลีกเลี่ยงสิ่งนี้เมื่อฉันบันทึกไฟล์ได้อย่างไร


59
ลองindex=Falseแทนindex_col
Jeff

เราสามารถใช้สิ่งนี้เป็น ms excel ได้หรือไม่?
Nabih Ibrahim Bawazir

ใช่คุณสามารถpd.to_excel(r'file.xlsx', index = False)
bfree67

index_colทำงานได้read_html()เช่นกัน
caram

คำตอบ:



89

มีสองวิธีในการจัดการกับสถานการณ์ที่เราไม่ต้องการให้ดัชนีถูกเก็บไว้ในไฟล์ csv

  1. ดังที่คนอื่น ๆ ระบุไว้คุณสามารถใช้index = Falseขณะบันทึก
    dataframe ของคุณไปยังไฟล์ csv

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

  2. หรือคุณสามารถบันทึกชื่อไฟล์ของคุณตามที่มีอยู่กับดัชนีและในขณะที่อ่านคุณเพียงแค่วางคอลัมน์ที่ไม่มีชื่อ 0ที่มีดัชนีก่อนหน้าของคุณง่ายมาก!

    df.to_csv(' file_name.csv ')
    df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'],axis=1)


1
"และในขณะที่อ่านคุณเพียงแค่ปล่อยคอลัมน์ที่ไม่มีชื่อ 0 ซึ่งมีดัชนีก่อนหน้านี้ของคุณ" วิธีที่ดีกว่าคือระบุpd.read_csv(..., index_col=[0]และหลีกเลี่ยงการเรียก "วาง" พิเศษ
cs95

30

หากคุณไม่ต้องการดัชนีให้อ่านไฟล์โดยใช้:

import pandas as pd
df = pd.read_csv('file.csv', index_col=0)

บันทึกโดยใช้

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

2
ฉันไม่สามารถเชื่อว่าไม่มีใครสังเกตเห็นข้อผิดพลาด หากต้องการบันทึกลงใน csv จะเป็นdf.to_csv('file.csv', index=False)
MEdwin

1
ฮ่า ๆ ๆ ไม่มีใครให้ความสนใจ ขอบคุณ
amalik2205

22

ดังที่คนอื่น ๆ ระบุไว้หากคุณไม่ต้องการบันทึกคอลัมน์ดัชนีตั้งแต่แรกคุณสามารถใช้ df.to_csv('processed.csv', index=False)

อย่างไรก็ตามเนื่องจากข้อมูลที่คุณมักจะใช้มีดัชนีบางประเภทเองสมมติว่าเป็นคอลัมน์ 'การประทับเวลา' ฉันจะเก็บดัชนีและโหลดข้อมูลโดยใช้

ดังนั้นในการบันทึกข้อมูลที่จัดทำดัชนีอันดับแรกให้ตั้งค่าดัชนีของพวกเขาแล้วบันทึก DataFrame:

df.set_index('timestamp')
df.to_csv('processed.csv')

หลังจากนั้นคุณสามารถอ่านข้อมูลด้วยดัชนี:

pd.read_csv('processed.csv', index_col='timestamp')

หรืออ่านข้อมูลจากนั้นตั้งค่าดัชนี:

pd.read_csv('filename.csv')
pd.set_index('column_name')

ถ้าฉันตั้งค่า index_col แล้วบันทึกฉันยังคงมีคอลัมน์ที่ไม่มีชื่อใน csv (Python2)
smiller

14

วิธีแก้ไขอื่นถ้าคุณต้องการเก็บคอลัมน์นี้เป็นดัชนี

pd.read_csv('filename.csv', index_col='Unnamed: 0')

1
ขอบคุณสิ่งที่ฉันกำลังมองหาขอบคุณ ที่ใดช่วยในการแปลแนวคิดของคีย์หลักโปร่งใสแม้เมื่อใช้ CSV
Tobbey

7

หากคุณต้องการรูปแบบที่ดีคำสั่งต่อไปจะดีที่สุด:

dataframe_prediction.to_csv('filename.csv', sep=',', encoding='utf-8', index=False)

ในกรณีนี้คุณมีไฟล์ csv ที่มี ',' แยกระหว่างคอลัมน์และรูปแบบ utf-8 นอกจากนี้ดัชนีตัวเลขจะไม่ปรากฏขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.