小编Pet*_*rov的帖子

Python中零之间的列表元素的元素

我有一个清单:

lst = [1, 2, 3, 5, 0, 0, 9, 45, 3, 0, 1, 7]
Run Code Online (Sandbox Code Playgroud)

我需要0新列表中s 之间的元素总和.我试过了

lst1 = []
summ = 0
for i, elem in enumerate(lst):
    if elem != 0:
        summ = summ + elem
    else:
        lst1.append(summ)
        lst1.append(elem)
        summ = 0
Run Code Online (Sandbox Code Playgroud)

但它回归[11, 0, 0, 0, 57, 0],而我期待 [11, 0, 0, 57, 0, 8]

python list

4
推荐指数
1
解决办法
485
查看次数

Python:从字典中获取最大值

我有一本字典

{u'__': 2, u'\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430': 1, u'\u041f\u043e\u0447\u0435\u043c\u0443': 1, u'\u041d\u0430\u043c': 1, u'\u043e\u0434\u0438\u043d': 1, u'\u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438': 1, u'\u041f\u0440\u043e\u0438\u0437\u043d\u0435\u0441\u0442\u0438': 1, u'\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e,': 1, u'\u0432\u044b\u0445\u043e\u0434\u044f\u0449\u0435\u043c\u0443': 1, u'\u043d\u0430\u0448\u0435\u0439': 2, u'\u0441\u0438\u0441\u0442\u0435\u043c\u0443': 1, u'\u0441\u0431\u043e\u0440\u0430': 1, u'\u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c.': 1, u'[![\u042f\u043d\u0434\u0435\u043a\u0441](//yastatic.net/lego/_/la6qi18z8lwgnzdsar1qy1gwcwo.gif)](//www.yandex.ru)': 1, u'\u0412\u0430\u043c': 1, u'\u0430': 102, u'\u0432\u0438\u0440\u0443\u0441\u043e\u0432,': 1, u'\u043e\u0447\u0435\u043d\u044c': 1, u'\u0438': 90, u'\u0440\u0430\u0437.': 1, u'[cureit](http://www.freedrweb.com/?lng=ru)': 1, u'\u043d\u0435': 9, u'\u0438\u043b\u0438': 2, u'\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e': 1, u'\u043d\u0430': 11, u'\u043d\u043e': 17, u'\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b': 1, u'\u041c\u043e\u0436\u0435\u0442': 1, u'\u0432\u0430\u0448': 5, u'\u0445\u043e\u0442\u0438\u0442\u0435': 1, u'[\u0444\u043e\u0440\u043c\u043e\u0439': 1, u'\u0432\u044b': 5, u'\u0446\u0435\u043b\u0435\u0439': 1, u'\u0441\u0438\u043c\u0432\u043e\u043b\u044b': 3, u'\u0415\u0441\u043b\u0438': 2, u'\u0422\u0430\u043a\u0436\u0435': 1, u'\u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438': 1, u'\u0434\u0430\u043d\u043d\u043e\u0433\u043e': 1, u'**\u0412': 1, u'\u0437\u0430\u043f\u0440\u043e\u0441\u044b),': …
Run Code Online (Sandbox Code Playgroud)

python encoding dictionary

3
推荐指数
1
解决办法
74
查看次数

Pandas:用百分比制作数据透视表

我有数据框

ID,url,used_at,active_seconds,domain
61a77f9e5fd52a50c10cd2d4d886ec68,mazdaspb.ru,2015-01,6,mazdaspb.ru
61a77f9e5fd52a50c10cd2d4d886ec68,mazdaspb.ru/cars/mazda-cx-5/crossover/overview,2015-01,12,mazdaspb.ru
61a77f9e5fd52a50c10cd2d4d886ec68,mazdaspb.ru/cars/mazda-cx-5/crossover/overview,2015-01,19,mazdaspb.ru
61a77f9e5fd52a50c10cd2d4d886ec68,vw-stat.ru,2015-01,40,vw-stat.ru
61a77f9e5fd52a50c10cd2d4d886ec68,vw-stat.ru/models/new_tiguan,2015-01,12,vw-stat.ru
61a77f9e5fd52a50c10cd2d4d886ec68,vw-stat.ru/models/new_tiguan/comps,2015-01,48,vw-stat.ru
61a77f9e5fd52a50c10cd2d4d886ec68,vw-stat.ru/models/new_tiguan/comps/new_tiguan_track_field,2015-01,4,vw-stat.ru
61a77f9e5fd52a50c10cd2d4d886ec68,vw-stat.ru/models/new_tiguan/comps/new_tiguan_track_field?engine_type=DIESEL&DIESEL=engines_4e53a3c8e986d,2015-01,78,vw-stat.ru
41c2fd7a372729dfe336e44730169f28,avito.ru/saratov/avtomobili_s_probegom/volkswagen/golf?f=188_886b887,2015-01,8,avito.ru
41c2fd7a372729dfe336e44730169f28,avito.ru/saratov/avtomobili_s_probegom/volkswagen/golf?f=188_886b887,2015-01,1,avito.ru
41c2fd7a372729dfe336e44730169f28,avito.ru/saratov/avtomobili_s_probegom/volkswagen/golf?f=188_886b887,2015-01,2,avito.ru
Run Code Online (Sandbox Code Playgroud)

我需要制作数据透视表,并且应该有所有唯一 ID 的百分比值。我可以得到

group = pd.pivot_table(df, index='used_at', columns='domain', values='ID', aggfunc=(lambda x: x.count()))
Run Code Online (Sandbox Code Playgroud)

但它每个月都会向每个域返回唯一 ID 的数量。如何将其转换为百分比?

python pivot-table unique percentage pandas

3
推荐指数
2
解决办法
2万
查看次数

Pandas:从列到唯一值的总和值

我有数据帧

ID    time    coeff   category
111    12      1.5     shop
111    15      1.5       shop
222    12      0.8     shop
222    18      0.8     shop
Run Code Online (Sandbox Code Playgroud)

我需要得到

category    unique_users
 shop         2.3
Run Code Online (Sandbox Code Playgroud)

如果我试试

result = df.groupby(['category']).agg({'ID': pd.Series.nunique}).rename(columns={ 'member_id': 'unique_users'}).reset_index()
Run Code Online (Sandbox Code Playgroud)

我知道2,因为它返回了唯一的df.ID.如何将值汇总df.coeff为唯一df.ID

python pandas

3
推荐指数
1
解决办法
2968
查看次数

Tensorflow:batch_size 取决于什么?

我是 tensorflow 的新手,我试图了解应该是什么大小batch

我的数据的形状(119396, 12955)。我怎样才能最好batch_size地选择我的数据?什么依赖batch_size于数据形状或使用算法?

python tensorflow

3
推荐指数
1
解决办法
531
查看次数

熊猫:连接数据帧

我有2个数据帧

category    count_sec_target
 3D-??????  0.09375
 C??????    201.90625
 GPS ? ???????  0.015625
 Hi-Tech    187.1484375
 ????????????   0.8125
 ????????????   8.40625
Run Code Online (Sandbox Code Playgroud)

category    count_sec_random
 3D-??????  0.369565217
 Hi-Tech    70.42391304
 ??? ??,  ???????????????   0.934782609
 ????????????   1.413043478
 ????????????   14.93478261
 ????   480.3369565
Run Code Online (Sandbox Code Playgroud)

我需要连接并得到

category    count_sec_target    count_sec_random
 3D-??????  0.09375    0.369565217
 C??????    201.90625   0
 GPS ? ???????  0.015625   0
 Hi-Tech    187.1484375   70.42391304
 ????????????   0.8125   1.413043478
 ????????????   8.40625   14.93478261
 ??? ??,  ???????????????   0    0.934782609
 ????   0     480.3369565
Run Code Online (Sandbox Code Playgroud)

接下来我想在col中划分值(count_sec_target / count_sec_random) * 100% 但是当我尝试连接df时

frames = [df1, df1]
df = pd.concat(frames) …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

2
推荐指数
1
解决办法
149
查看次数

熊猫:获得平均数据帧

我有50个具有一个结构的数据帧,但值不同.如何从这一切获得平均数据帧?

       active nodes
graph              
0               128
1               128
2               128
3               127
4               126
5               126
6               126
7               126
8               126
9               125
10              124
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
73
查看次数

熊猫:每N列的总和

我有数据帧

ID   2016-01   2016-02 ...  2017-01  2017-02 ... 2017-10  2017-11  2017-12
111    12        34           0        12          3        0        0
222    0         32           5         5          0        0        0
Run Code Online (Sandbox Code Playgroud)

我需要计算每12列并得到

ID   2016   2017
111   46     15
222   32     10
Run Code Online (Sandbox Code Playgroud)

我试着用

(df.groupby((np.arange(len(df.columns)) // 31) + 1, axis=1).sum().add_prefix('s'))
Run Code Online (Sandbox Code Playgroud)

但它会返回所有列但是当我尝试使用时

df.groupby['ID']((np.arange(len(df.columns)) // 31) + 1, axis=1).sum().add_prefix('s'))
Run Code Online (Sandbox Code Playgroud)

它回来了

TypeError: 'method' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

python pandas

2
推荐指数
1
解决办法
1431
查看次数

Pandas:str。包含正则表达式

我有数据框,我需要使用正则表达式进行过滤。

数据框:

                  domain                    tag1  
0         ^mail.ru/search                  ??????   
1             go.mail.ru$              ???-??????   
2           vk.com/audios              ??????????   
3            vk.com/video              ??????????   
4             vk.com/apps              ??????????   
5                  vk.com              ??????????   
6       ^yandex.ru/search                  ??????   
7       ^yandex.ru/pogoda                  ??????   
8             ^yandex.ru$              ???-??????
Run Code Online (Sandbox Code Playgroud)

我只需要获取域名

我尝试使用

def get_domain_encoding(df):
    return df[df.domain.str.contains(r'[a-zA-Z0-9-_]+.[a-zA-Z0-9]')]
Run Code Online (Sandbox Code Playgroud)

它又回到了我

                   domain                    tag1  
0         ^mail.ru/search                  ??????      
2           vk.com/audios              ??????????   
3            vk.com/video              ??????????   
4             vk.com/apps              ??????????   
5                  vk.com              ??????????   
6       ^yandex.ru/search                  ??????   
7       ^yandex.ru/pogoda                  ??????   
8             ^yandex.ru$              ???-??????
Run Code Online (Sandbox Code Playgroud)

当我将其更改为

def get_domain_encoding(df):
    return df[df.domain.str.contains(r'^[a-zA-Z0-9-_]+.[a-zA-Z0-9]$')]
Run Code Online (Sandbox Code Playgroud)

它返回我空的数据框。

我该如何解决?

python regex pandas

2
推荐指数
1
解决办法
2158
查看次数

熊猫:将列转换为列表

我有一个数据帧

date    member_id   val
2016-06-01  2377264 14
2016-06-01  289719  6
2016-06-02  289719  12
2016-06-02  2377264 1
2016-06-03  289719  0
2016-06-04  289719  0
2016-06-05  289719  3
Run Code Online (Sandbox Code Playgroud)

我需要获取member_id val 2377264 [14,1] 289719 [6,12,0,3]接下来我要对列表中的元素求和,如果列表中有0,则写入.我的意思是

member_id   val
2377264   [15]
289719    [18, 0, 0, 3]
Run Code Online (Sandbox Code Playgroud)

我试过了

vals = []
print df.groupby('member_id')['val'].apply(lambda x: vals.append(x))
Run Code Online (Sandbox Code Playgroud)

但它返回列中的所有None值.我该如何解决这个问题?

python pandas

1
推荐指数
1
解决办法
1万
查看次数