2015-05-02 67 views
0

我已經在python 2.7中使用sqlite創建了一個數據庫,並將數據加載到了熊貓數據框中,如下所示。我想要做的是將結果打印爲「七月份最熱的城市是:伊斯坦布爾,安卡拉,伊茲密爾,布爾薩」。我已經用Python編寫的代碼如下:如何在一個語句中打印熊貓數據框值

import sqlite3 as lite 
import pandas as pd 

con = lite.connect("project_warmest.db") 

with con: 
    cur = con.cursor() 
    cur.execute("DROP TABLE IF EXISTS cities;") 
    cur.execute("DROP TABLE IF EXISTS weather;") 
    cur.execute("CREATE TABLE cities (name text, region text)") 
    cur.execute("CREATE TABLE weather (city text, warm_month text, average_high integer)") 

    cur.execute("INSERT INTO cities VALUES('Istanbul', 'Marmara')") 
    cur.execute("INSERT INTO cities VALUES('Ankara', 'Ic Anadolu')") 
    cur.execute("INSERT INTO cities VALUES('Izmir', 'Ege')") 
    cur.execute("INSERT INTO cities VALUES('Antalya', 'Akdeniz')") 
    cur.execute("INSERT INTO cities VALUES('Bursa', 'Marmara')") 

    cur.execute("INSERT INTO weather VALUES('Istanbul', 'July',24)") 
    cur.execute("INSERT INTO weather VALUES('Ankara', 'July',21)") 
    cur.execute("INSERT INTO weather VALUES('Izmir', 'July',27)") 
    cur.execute("INSERT INTO weather VALUES('Antalya', 'August',30)") 
    cur.execute("INSERT INTO weather VALUES('Bursa', 'July',23)") 
    cur.execute("SELECT city FROM weather INNER JOIN cities ON name = city WHERE warm_month = 'July'") 

    rows = cur.fetchall() 
    cols = [desc[0] for desc in cur.description] 
    df = pd.DataFrame(rows, columns = cols) 

print "The cities that are warmest in July are: %s, " %df.iloc[0]["city"] 

回答

1

您可以加入元素的數組從df["city"]

In [53]: print "The cities warmest in July are: %s" % ', '.join(df["city"].values) 
The cities warmest in July are: Istanbul, Ankara, Izmir, Bursa 

', '.join(df["city"].values) - 這將返回一個逗號分隔的字符串。


此外,您還可以使用pd.read_sql()pd.read_sql_query直接讀取SQL結果數據幀。

In [54]: pd.read_sql("SELECT city FROM weather INNER JOIN cities ON name = city" 
    ....:    " WHERE warm_month = 'July'", con) 
Out[54]: 
     city 
0 Istanbul 
1 Ankara 
2  Izmir 
3  Bursa 
相關問題