【问题标题】:How to extract csv data with input() function in python如何在python中使用input()函数提取csv数据
【发布时间】:2019-03-18 19:42:34
【问题描述】:

我目前正在尝试使用 csv 数据在 python 中创建一个基于输入的健壮图形。我已经能够成功导入数据,并让 input() 函数工作,但我希望该函数使用匹配的数据点,以便稍后绘制它。目前,我从该 DOI 请求感兴趣的日期,我希望 python 从下一列获取后续数据并将该点绘制在图表上。我曾尝试使用 for 循环,目前正试图通过定义一个函数来做到这一点。有没有可能让python做到这一点?还是我需要重新定义如何获取“y”数据?

csv 示例: 日期值

2006001 12345

2006002 13452

2006003 12567

这是我目前的代码(仅用于获取数据):

import numpy as np
import matplotlib.pyplot as plt
import os

os.chdir("/Users/misi7940/Downloads/")


masie_df=pd.read_csv("masie (1).csv", skiprows=[0])
#masie_df.info()
x=masie_df[['yyyyddd']]
y=masie_df[[' (0) Northern_Hemisphere']]


def date():
    DOI=input("what is your date of interest?")
    for row in masie_df:
        if DOI == row[1]:
            print(row)


date()

【问题讨论】:

  • 你能举个csv文件的例子吗?以及您输入的内容。作为猜测,您可以在输入上使用 groupby 函数。
  • 添加了一个csv文件的例子

标签: python csv matplotlib input


【解决方案1】:

我不确定你的整个脚本是如何工作的,但你需要在 Pandas 中使用 .loc 来获得查找结果。

这里有一些(未经测试的)代码可能对您有所帮助:

import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

ddict = {
    'date':['2006001','2006002','2006003',],
    'value':['12345','13452','12567',],
}
masie_df = pd.DataFrame(ddict)

def date():
    while True:
        print('what is your date of interest? [yyyyddd format]')
        DOI = input('>>> ')
        if len(DOI) == 7:
            for i in masie_df:
                if DOI in masie_df['date']:
                    print(masie_df.loc[masie_df['date'] == DOI]['value'])

        else:
            print('Please enter a valid date format or [Q] to quit.')
            DOI = input('>>> ')
            if DOI.lower() in ['q','quit','',]:
                break

    print('Goodbye!')


if __name__ == '__main__':
    date()

【讨论】:

    猜你喜欢
    • 2021-05-14
    • 2021-08-26
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多