วิธีโหลดไฟล์ tsv ไปยัง Pandas DataFrame


136

ฉันยังใหม่กับงูหลามและหมีแพนด้า ฉันพยายามที่จะได้รับไฟล์โหลดลงในหมีแพนด้า tsvDataFrame

นี่คือสิ่งที่ฉันพยายามและข้อผิดพลาดที่ฉันได้รับ:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!

11
สำหรับผู้ที่จะมาถึงในคำตอบนี้ 2017+ read_csv('path_to_file', sep='\t')ใช้ ดูคำตอบด้านล่างนี้
Ted Petrou

ขอบคุณ @TedPetrou
Salomon Kabongo

คำตอบ:


153

หมายเหตุ : ตั้งแต่ 17.0 from_csvหมดกำลังใจ: ใช้pd.read_csvแทน

เอกสารแสดงรายการฟังก์ชัน. from_csvที่ดูเหมือนจะทำสิ่งที่คุณต้องการ:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t')

header=0หากคุณมีส่วนหัวคุณสามารถส่งผ่าน

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)

4
ฉันมีปัญหาบางอย่างกับวิธีนี้ - มันช้ามากและการทำดัชนีล้มเหลวในตอนท้าย แต่ฉันใช้ read_table () ซึ่งทำงานเร็วกว่ามากและไม่มีพารามิเตอร์พิเศษ
Yurik

21
โปรดทราบว่าตั้งแต่วันที่ 17.0 from_csvหมดกำลังใจ: ใช้pd.read_csvแทน!
rafaelvalle

2
ฉันต้องใช้สิ่งต่อไปนี้: DataFrame.read_csv ('filepath.tsv', sep = '', header = 0)
Archie

3
นี่เป็นคำตอบที่ไม่ดี คุณสามารถอ่าน TSV ได้ด้วยตัวpd.read_csv/read_tableเองคุณเพียงแค่ต้องตั้งค่าdelim_whitespace=Trueหรือsep
smci

3
@rafaelvalle เพิ่มการบอกเลิกแล้ว
Arayan Singh

84

ณ วันที่ 17.0 from_csvหมดกำลังใจ

ใช้หรือpd.read_csv(fpath, sep='\t')pd.read_table(fpath)


4
หมายเหตุ: read_table เลิกใช้แล้วตั้งแต่เวอร์ชั่น 0.24.0 ใช้ pandas.read_csv () แทน
ManuelSchneid3r

57

read_table(filepath)ใช้ ตัวคั่นเริ่มต้นคือแท็บ


1
read_table ไม่ต้องการพารามิเตอร์ใด ๆ ทำงานได้อย่างสมบูรณ์แบบ
Jay

19

ลองสิ่งนี้

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()

ป้อนคำอธิบายรูปภาพที่นี่

คุณจำเป็นต้องแก้ไขพารามิเตอร์sep


7

เปิดไฟล์บันทึกเป็น. csv แล้วนำไปใช้

df = pd.read_csv('apps.csv', sep='\t')

สำหรับรูปแบบอื่นด้วยเพียงแค่เปลี่ยนแท็ก sep


0
df = pd.read_csv('filename.csv', sep='\t', header=0)

คุณสามารถโหลดไฟล์ tsv ลงในกรอบข้อมูลแพนด้าโดยตรงโดยระบุตัวคั่นและส่วนหัว

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