【发布时间】:2022-02-17 19:47:49
【问题描述】:
我有一个如下示例中所示的文本文件,我想将其转换为 csv 文件(当前使用 Pandas)。
挑战在于我事先不知道键(列标题是什么)以及它们的顺序。
最后的列顺序并不重要。
示例文件:
name: john| dob: 10-06-1960| address: 4853 Radio Park Drive
name: jane| dob: 07-10-1973| address: 1537 Timbercrest Road| mobile: 706-289-6746
name: liam| dob: 12-08-1986| address: 4853 498 Fairmont Avenue| telephone number: 706-687-5021
name: chris| dob: 09-12-1965| address: 485 Green Avenue| state: California| Telephone Number: 510-855-5213
期望的输出:
Name | dob | address | mobile | telephone number | state |
-----+------------+--------------------------+--------------+------------------+------------+
john | 10-06-1960 | 4853 Radio Park Drive | | | |
jane | 07-10-1973 | 1537 Timbercrest Road | 706-289-6746 | | |
liam | 12-08-1986 | 4853 498 Fairmont Avenue | | 706-687-5021 | |
chris| 09-12-1965 | 485 Green Avenue | | 510-855-5213 | California |
我的代码:
import pandas as pd
df = pd.DataFrame()
file = open('D:\sample.log', 'r')
lines = file.readlines()
for line in lines:
pairs = line.split('|')
my_dict = {}
for pair in pairs:
key = pair.split(': ')[0].strip()
value = pair.split(': ')[1].strip()
my_dict[key] = value
df.append(my_dict, ignore_index=True)
这种追加方式很慢。我怎样才能让它更快。
或者有更好的解决方案(例如通过 json 字符串)?
【问题讨论】:
标签: python pandas dataframe export-to-csv key-value