如何将指定文本格式转换为含指定列的Pandas DataFrame?
问题描述
用户现有如下代码和交易文本数据,希望将文本转换为包含date、txn_type、curr、Amt、status列的DataFrame:
import pandas as pd text = ''' 12/2/2023 Deposit USD 10 Complete 15/2/2023 Deposit USD 15 Complete ''' x = text.split() y=pd.DataFrame(x) print(y)
实现方案
可以通过以下步骤完成转换:
- 按换行分割文本并过滤空行,得到干净的字段列表
- 按每5个元素为一组拆分列表(对应每条交易的5个属性)
- 基于拆分后的二维数组创建DataFrame并指定列名
具体代码如下:
import pandas as pd text = ''' 12/2/2023 Deposit USD 10 Complete 15/2/2023 Deposit USD 15 Complete ''' # 分割文本并过滤空行 clean_lines = [line.strip() for line in text.split('\n') if line.strip()] # 每5个元素组成一条交易数据 transaction_groups = [clean_lines[i:i+5] for i in range(0, len(clean_lines), 5)] # 创建带指定列名的DataFrame final_df = pd.DataFrame(transaction_groups, columns=['date', 'txn_type', 'curr', 'Amt', 'status']) # 可选:将金额列转为数值类型 final_df['Amt'] = pd.to_numeric(final_df['Amt']) print(final_df)
运行后输出结果:
date txn_type curr Amt status 0 12/2/2023 Deposit USD 10 Complete 1 15/2/2023 Deposit USD 15 Complete
内容的提问来源于stack exchange,提问作者Vinod R
相关产品推荐
相关产品推荐

