我是 python 新手。我有一個txt檔案。它包含一些資料,例如
0: 480x640 2 persons, 1 cat, 1 clock, 1: 480x640 2 persons, 1 chair, Done. date (0.635s) Tue, 05 April 03:54:02
0: 480x640 3 persons, 1 cat, 1 laptop, 1 clock, 1: 480x640 4 persons, 2 chairs, Done. date (0.587s) Tue, 05 April 03:54:05
0: 480x640 3 persons, 1 chair, 1: 480x640 4 persons, 2 chairs, Done. date (0.582s) Tue, 05 April 03:54:07
我曾經將其轉換為帶有多個分隔符的熊貓資料框
我試過代碼:
import pandas as pd
`student_csv = pd.read_csv('output.txt', names=['a', 'b', 'c','date'], sep='[0: 480x640, 1: 480x640 , date]')
student_csv.to_csv('txttocsv.csv', index = None)`
現在如何將它轉換成這樣的熊貓資料框......
a b c
2 persons, 1 cat 2 persons, 1 chair, Done Tue, 05 April03:54:02
如何將文本檔案轉換為資料框
uj5u.com熱心網友回復:
很難確切地知道您的拆分規則是什么。您可以使用正則運算式作為分隔符。
這是一個將串列和日期拆分為列的作業示例,但您可能必須根據您的確切規則對其進行調整:
df = pd.read_csv('output.txt', sep=r'(?:,\s*|^)(?:\d : \d x\d |Done[^)] \)\s*)',
header=None, engine='python', names=(None, 'a', 'b', 'date')).iloc[:, 1:]
輸出:
a b date
0 2 persons, 1 cat, 1 clock 2 persons, 1 chair Tue, 05 April 03:54:02
1 3 persons, 1 cat, 1 laptop, 1 clock 4 persons, 2 chairs Tue, 05 April 03:54:05
2 3 persons, 1 chair 4 persons, 2 chairs Tue, 05 April 03:54:07
uj5u.com熱心網友回復:
您可以|在sep引數中使用多個分隔符
df = pd.read_csv('data.txt', sep=r'0: 480x640|1: 480x640|date \(.*\)',
engine='python', names=('None', 'a', 'b', 'c')).drop('None', axis=1)
print(df)
a b \
0 2 persons, 1 cat, 1 clock, 2 persons, 1 chair, Done.
1 3 persons, 1 cat, 1 laptop, 1 clock, 4 persons, 2 chairs, Done.
2 3 persons, 1 chair, 4 persons, 2 chairs, Done.
c
0 Tue, 05 April 03:54:02
1 Tue, 05 April 03:54:05
2 Tue, 05 April 03:54:07
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455751.html
標籤:Python python-3.x 熊猫 数据框 CSV
