定义一个从CSV数据中播放图形的函数 - Python panda

时间:2016-01-08 09:28:35

标签: pandas data-analysis

我正在慢慢学习Python数据分析,并且必须掌握基本的python函数。我正在尝试使用数据分析,从我用其中随机值创建的简单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')

当我调用该函数时,代码返回我的问题,同时给出货币对的输出。但是,它似乎没有将x(用户输入的值)放入函数的后半部分,因此不会产生图形。

我在这里做错了吗?

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

我很困惑!

1 个答案:

答案 0 :(得分:1)

我认为您需要使用两个参数重写您的函数: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)