国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Adakah terdapat cara untuk menggunakan python untuk mengeluarkan rentetan data ini dalam format yang saya mahukan?
漂亮男人
漂亮男人 2017-06-12 09:21:18
0
3
825
[('2016-09', 20874.73, '李四'), ('2016-10', 64296.45, '李四'), ('2016-11', 58657.1, '李四'), ('2016-12', 51253.14, '李四'), ('2017-01', 57791.88, '李四'), ('2017-01', 46007.0, '張三'), ('2017-02', 67193.55, '李四'), ('2017-02', 38352.0, '張三'), ('2017-03', 83359.53, '李四'), ('2017-03', 49661.0, '張三'), ('2017-04', 39907.0, '張三')]

Saya mahu mengeluarkan rentetan data di atas dalam format

[{'data': [['2013-04', 52.9], ['2013-05-01', 50.7]], 'name': '張三'},{'data': [['2013-04', 27.7], ['2013-05-01', 25.9]], 'name': '李四'}]

Dengan format ini, adakah cara lain? Saya telah memikirkannya untuk masa yang lama dan tidak dapat memikirkan cara yang berkesan untuk melakukannya.

漂亮男人
漂亮男人

membalas semua(3)
伊謝爾倫
# python2
# coding: utf8
a = [('2016-09', 20874.73, '李四'), ('2016-10', 64296.45, '李四'), ('2016-11', 58657.1, '李四'), ('2016-12', 51253.14, '李四'), ('2017-01', 57791.88, '李四'), ('2017-01', 46007.0, '張三'), ('2017-02', 67193.55, '李四'), ('2017-02', 38352.0, '張三'), ('2017-03', 83359.53, '李四'), ('2017-03', 49661.0, '張三'), ('2017-04', 39907.0, '張三')]
s = []
for i in a:
    for dict_tmp in s:
        if dict_tmp.get('name', '') == i[2]:
            dict_tmp['data'].append([i[0], i[1]])
            break
    else:
        s.append(
            {
                'name': i[2],
                'data':  [[i[0], i[1]]]
            }
        )
print s

為情所困
from collections import defaultdict

d = defaultdict(list)

l_data = [('2016-09', 20874.73, '李四'), ('2016-10', 64296.45, '李四'), ('2016-11', 58657.1, '李四'), ('2016-12', 51253.14, '李四'), ('2017-01', 57791.88, '李四'), ('2017-01', 46007.0, '張三'), ('2017-02', 67193.55, '李四'), ('2017-02', 38352.0, '張三'), ('2017-03', 83359.53, '李四'), ('2017-03', 49661.0, '張三'), ('2017-04', 39907.0, '張三')]

for x in l_data:
    d[x[2]].append([x[0], x[1]])

result = [{'name': k, 'data': v} for k, v in d.iteritems()]
女神的閨蜜愛上我

Dalam kes ini, modul panda harus digunakan untuk menjadikannya lebih mampan:

data_input = [('2016-09', 20874.73, '李四'), ('2016-10', 64296.45, '李四'), ('2016-11', 58657.1, '李四'), ('2016-12', 51253.14, '李四'), ('2017-01', 57791.88, '李四'), ('2017-01', 46007.0, '張三'), ('2017-02', 67193.55, '李四'), ('2017-02', 38352.0, '張三'), ('2017-03', 83359.53, '李四'), ('2017-03', 49661.0, '張三'), ('2017-04', 39907.0, '張三')]

import pandas as pd
df = pd.DataFrame(data_input)
df.columns = ['month','value','name']
d = df.set_index(['name'])
print ( set(d.index) )                           # {'張三', '李四'}
print ( list(d.loc['張三'].values.tolist()) )  # data變成list
print ( [{'data':list(d.loc[x].values.tolist()) , 'name': x} for x in set(d.index) ] )   

Barisan terakhir ialah hasil yang anda inginkan. Pada asasnya, ia menggunakan hasil indeks baris ketiga hingga terakhir sebagai asas untuk terbitan senarai untuk menghasilkan kamus yang anda inginkan, yang mengandungi nama dan data, dan data mengandungi data yang disenaraikan dalam senarai

[{'data': [['2016-09', 20874.73],
   ['2016-10', 64296.45],
   ['2016-11', 58657.1],
   ['2016-12', 51253.14],
   ['2017-01', 57791.88],
   ['2017-02', 67193.55],
   ['2017-03', 83359.53]],
  'name': '李四'},
 {'data': [['2017-01', 46007.0],
   ['2017-02', 38352.0],
   ['2017-03', 49661.0],
   ['2017-04', 39907.0]],
  'name': '張三'}]
  
  

Jika anda memerlukan lebih banyak pemprosesan data, saya sangat mengesyorkan belajar modul panda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan