Python文本转table-DataFrame

工作中,经常遇到需要将查询结果的文本,转换为二维表(类似Excel的表格)格式,供代码处理, 或者保存为Excel/CSV。该代码:

  1. 切割文本为list的 list(行间分隔符,行内值分割符)
  2. 将切割后list的list转换为一个DataFrame或者Dictionry List。
  3. 然后通过pandas保存为Excel。
import pandas as pd

data = """Alice,1.1,3.0,1.7,5.0,2,FEOL
Bob,2.2,2.6,2.5,2.6,3,MEOL
Cathy,3.3,2.0,3.6,2.4,0,MEOL
Dany,4.4,1.7,2.4,1.3,1,FEOL
Ella,5.0,3.0,5.0,3.0,7,MEOL
Ford,3.2,3.3,2.2,3.6,2,FEOL
Gary,2.4,4.4,3.3,2.4,1,MEOL
Ham,1.5,5.0,4.4,5.0,5,MEOL
Ico,4.3,3.2,1.5,2.2,3,FEOL
Jack,4.5,2.4,4.3,3.1,4,MEOL"""
columns_names=['name', 'Math_A', 'English_A', 'Math_B', 'English_B', 'Project_num', 'Sex']

"""
# 1. Split string to dataframe - table: 1) split the txt to a row list - 'EOL' is the row separator; 2) split each row to field values list - ',' is the field separator Remove the invalid row(field values list) - len of field values list should same as the columns name list
"""
data_list = [row for row in [i.strip('\n').split(',') for i in data.strip('\n').split('EOL')] if len(row) == len(columns_names)]
print(">>>>> 1. list list is: \n ", data_list)

# 2. Transform list list to dataframe
data_df = pd.DataFrame(data_list, columns= columns_names)
print(">>>>> 2. The dataframe is: \n", data_df)

# 3. transform list list to dictionary
value_dict_list = [dict(zip(columns_names, value)) for value in data_list]
print(" >>>>> 3. The Dictionary list: \n", value_dict_list)
#pd.DataFrame(value_dict_list).to_csv('test2.csv')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值