定义函数以从 CSV 数据播放图表 - Python panda

Defining a function to play a graph from CSV data - Python panda

我正在尝试进行数据分析,从我创建的一个简单的 CSV 文件中获取数据,其中包含随机值。

我定义了一个函数,允许用户输入 value3,然后从 dataFrame 中绘制条形图。以下:

def analysis_currency_pair():
    x=raw_input("what currency pair would you like to analysie ? :")
    print type(x)
    global dataFrame
    df1=dataFrame
    df2=df1[['currencyPair','amount']]
    df2 = df2.groupby(['currencyPair']).sum()
    df2 = df2.loc[x].plot(kind = 'bar')

当我调用该函数时,代码 returns 我的问题,以及给出货币对的输出。但是函数的后半部分好像没有把x(用户输入的值)放到函数里面,所以没有图生成。

我是不是做错了什么?

当我们只是将值放入而不是在函数中时,此代码有效。

我很困惑!

我认为你需要用两个参数重写你的函数:xdf,它们被传递给函数 analysis_currency_pair:

import pandas as pd

df = pd.DataFrame({"currencyPair": pd.Series({1: 'EURUSD', 2: 'EURGBP', 3: 'CADUSD'}), 
                   "amount": pd.Series({1: 2, 2: 2, 3: 3.5}),
                   "a": pd.Series({1: 7, 2: 8, 3: 9})})

print df

#   a  amount currencyPair
#1  7     2.0       EURUSD
#2  8     2.0       EURGBP
#3  9     3.5       CADUSD

def analysis_currency_pair(x, df1):
    print type(x)
    df2=df1[['currencyPair','amount']]
    df2 = df2.groupby(['currencyPair']).sum()
    df2 = df2.loc[x].plot(kind = 'bar')

#raw input is EURUSD or EURGBP or CADUSD
pair=raw_input("what currency pair would you like to analysie ? :")

analysis_currency_pair(pair, df)

或者您可以将字符串传递给函数 analysis_currency_pair:

import pandas as pd

df = pd.DataFrame({"currencyPair": [ 'EURUSD', 'EURGBP', 'CADUSD', 'EURUSD', 'EURGBP'], 
                    "amount": [ 1,  2,  3, 4, 5],
                    "amount1": [ 5,  4,  3, 2, 1]})

print df

#   amount  amount1 currencyPair
#0       1        5       EURUSD
#1       2        4       EURGBP
#2       3        3       CADUSD
#3       4        2       EURUSD
#4       5        1       EURGBP

def analysis_currency_pair(x, df1):
    print type(x)

    #<type 'str'>
    df2=df1[['currencyPair','amount']]
    df2 = df2.groupby(['currencyPair']).sum()
    print df2

    #              amount
    #currencyPair        
    #CADUSD             3
    #EURGBP             7
    #EURUSD             5   

    df2 = df2.loc[x].plot(kind = 'bar')

analysis_currency_pair('CADUSD', df)