ฉันมีไฟล์ txt พร้อมข้อมูลในรูปแบบนี้ 3 บรรทัดแรกซ้ำไปซ้ำมา
name=1
grade=A
class=B
name=2
grade=D
class=A
ฉันต้องการส่งออกข้อมูลในรูปแบบตารางตัวอย่างเช่น:
name | grade | class
1 | A | B
2 | D | A
ฉันกำลังพยายามตั้งค่าส่วนหัวและวนรอบข้อมูล สิ่งที่ฉันได้ลองไปแล้วคือ:
def myfile(filename):
with open(file1) as f:
for line in f:
yield line.strip().split('=',1)
def pprint_df(dframe):
print(tabulate(dframe, headers="keys", tablefmt="psql", showindex=False,))
#f = pd.DataFrame(myfile('file1')
df = pd.DataFrame(myfile('file1'))
pprint_df(df)
ผลลัพธ์จากนั้นคือ
+-------+-----+
| 0 | 1 |
|-------+-----|
| name | 1 |
| grade | A |
| class | B |
| name | 2 |
| grade | D |
| class | A |
+-------+-----+
ไม่ใช่สิ่งที่ฉันกำลังมองหา
df = pd.read_table(file, header=None)
ทำบรรทัดต่อไปนี้new = df[0].str.split("=", n=1, expand=True)
และนี่คือคำตอบที่ฉันโปรดปรานในแง่ของ "รหัสที่ดี"