首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从.txt文件创建表?

如何从.txt文件创建表?
EN

Stack Overflow用户
提问于 2019-06-27 15:32:51
回答 2查看 2.1K关注 0票数 0

我正在尝试从.txt文件创建e dataframe (包含三列的表)。

我准备了txt文件,因此它具有如下格式:

小汽车 奥迪A4 10000 奥迪A6 12000 …… 公共汽车 大众运输公司15000 ..。 露营者 美国加州大众汽车20000 ..。

以下是整个代码:

代码语言:javascript
复制
cars = ""
with open("cars.txt", "r", encoding = "utf-8") as f:
    cars = f.read()
print(cars)

def generate_car_table(table):
    table = pd.DataFrame(columns = ['category', 'model','price'])
    return table

cars_table = generate_car_table(cars)

我希望有一个三栏的表-类别,这将显示车辆是否是汽车/公共汽车/露营,模型和价格。

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-27 15:39:13

更新:

考虑到你的评论,我发现我误解了你的问题。

如果您是文本文件(cars.txt),则如下所示:

代码语言:javascript
复制
Car
Audi A4         10000
Audi A6         12000

Bus
VW Transporter  15000

Camper
VW California   20000

这样,在每个category完成行中断之后,在modelprice之间是一个选项卡,您可以运行以下代码:

代码语言:javascript
复制
# Read the file 
data = pd.read_csv('cars.txt', names=['Model','Price','Category'], sep='\t')

# Transform the unstructured data
data.loc[(data['Price'].isnull() == True), 'Category'] = data['Model']
data['Category'].fillna(method='ffill', inplace=True)
data.dropna(axis=0, subset=['Price'], inplace = True)

# Clean the dataframe
data.reset_index(drop=True, inplace=True)
data = data[['Category', 'Model', 'Price']]
print(data)

这确实导致了下表:

代码语言:javascript
复制
  Category           Model    Price
0      Car         Audi A4  10000.0
1      Car         Audi A6  12000.0
2      Bus  VW Transporter  15000.0
3   Camper   VW California  20000.0

旧的答案:

您的文本文件需要一个固定的结构(例如,所有的值都由一个表或行符分隔)。然后您可以使用pd.read_csv方法并使用pd.read_csv('yourFileName', sep='yourseperator')手动定义分隔符。

例如,制表符是\t,换行符是\n

例如,下面的cars.txt (链接)是使用制表符构造的,可以用以下方式读取:

代码语言:javascript
复制
import pandas as pd

pd.read_csv('cars.txt', sep = '\t')
票数 1
EN

Stack Overflow用户

发布于 2019-06-27 15:42:10

从CSV文件创建表可能比从文本文件创建表容易得多,因为它将使解析工作更加容易,并且还提供了在电子表格应用程序(如Excel )中轻松查看表格式的好处。

创建该文件,使其看起来如下所示

代码语言:javascript
复制
category,model,price
Car,Audi A4,10000
Car,Audi A6,12000
...

然后使用csv包轻松地将数据读写成表格格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56794440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档