【问题标题】:How to separate values in a text file? [closed]如何分隔文本文件中的值? [关闭]
【发布时间】:2019-08-06 00:07:08
【问题描述】:

我有一个文本文件,其中包含按日期划分的汽油价格信息。文件格式为:

月-日-年:价格

示例:GasPrices

我需要完成 2 个任务:

(1) 将输入分离为--月、日、年、价格

(2) 计算每年和每月的平均gas价格。

有人能指出我正确的方向吗,因为我是 Stack Overflow 和编码的新手?

【问题讨论】:

  • 您能否将数据作为文本包含在此处并添加所需输出的示例?
  • 尝试编写代码,我们将帮助解决错误。直接提供解决方案可能无法帮助您培养所需的技能
  • 将数据样本作为文本文件包含在内,这样我们就可以提供解决方案而无需重新创建样本
  • 欢迎来到 Stack Overflow!请熟悉这些常见问题并重新发布您的问题 - (1) 如何创建最小、完整和可验证的示例 - stackoverflow.com/help/mcve 和 (2) 为什么投票很重要? -stackoverflow.com/help/why-vote。 -- 快乐编码!

标签: python python-3.x file


【解决方案1】:

这个问题非常简单,甚至不需要使用正则表达式。
python 的美妙之处在于,您始终可以节省代码。
您的起点是分隔符:(我重新创建了您的集合并将其放入 .txt 文件中)

import pandas as pd

df = pd.read_table("stack_example.txt", sep = ":", header = -1, names = 
["date","val"])

df['month'] = pd.DatetimeIndex(df['date']).month
df['year']  = pd.DatetimeIndex(df['date']).year
df.head()

终于

df_grp = df.loc[:,["val","month","year"]].groupby(["month", "year"]).mean()
df_grp

不算.head()import pandas 这是4行代码。

【讨论】:

    【解决方案2】:
    with open('/path/to/file','r') as f:
       fullfile = [x.strip() for x in f.readlines()]
    datesprices=[(x.split(':')[0], x.split(':')[1]) for x in fullfile]
    

    此代码将文件读入名为 fullfile 的列表中,去除换行符,并使用 split 函数将与日期对应的价格放入元组列表中。如果您有任何问题,请发表评论。

    【讨论】:

      【解决方案3】:

      您可以使用csv stdlib 模块,它适用于各种字符分隔的文件解析。

      import csv
      
      with open("path/to/file") as f:
          reader = csv.reader(f, delimiter=":")
          for date, gas_price in reader:
              # do whatever
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-19
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-05
        相关资源
        最近更新 更多