简单点就 TFIDF 提取出每句 TOP5 的词,然后转 one hot 求和,最后求余弦距离
复杂点就 bert 直接整句输入,输出一个 768 维向量,最后还是余弦距离 /Ball-Tree/KD-Tree 这些,无新增直接聚类也应该可以。
想到一个思路不太一样的方法
```
import pandas as pd
import numpy as np
df.loc[df.C == True, 'Z'] =range(df.C.sum())
df.Z.bfill(inplace=True)
df['D'] = np.where(df.C,df.groupby('Z')['B'].transform('sum'),0)
df.drop(columns='Z',inplace=True)
```
@
xz #19 哦忘了说,我家的联通有外网 IP,什么都不开的时候就是 C,只代理 TCP 是 B,代理了 UDP 后就是 A,udp 使用的 tun 方式
我在 openwrt 上开了 clash,并且打开代理 udp,switch 一直是 A,没使用别的加速器,就是一个 GIA 的梯子
缩进乱了,new_funds.append 是在两层循环里,json_normalize 是在最外层,循环完毕才去执行的
楼上说了,每次操作 df 是很慢的,可以操作 json 变为适合的格式,然后一次性给 pandas
```
from pandas import json_normalize
funds = [{'000005': {'company': '嘉实', 'name': '嘉实增强信用定期债券', 'type': '定开债券', 'earning': {'1m': 0.1, '3m': 1.0, '6m': 0.85, '1y': 2.59},
'hold_stocks': [{'code': '601966', 'name': '玲珑轮胎', 'percentage': '0.51%', 'volume': 0.67, 'value': 23.48},
{'code': '002745', 'name': '木林森', 'percentage': '0.47%', 'volume': 1.5, 'value': 21.92}]}},
{'970008': {'company': '华安', 'name': '华安证券汇赢增利一年持有混合 C', 'type': '混合型', 'earning': {'1m': -0.55, '3m': -0.58, '6m': 0.67, '1y': 0},
'hold_stocks': [{'code': '300692', 'name': '中环环保', 'percentage': '0.72%', 'volume': 31.81, 'value': 496.79},
{'code': '603012', 'name': '创力集团', 'percentage': '0.67%', 'volume': 72.28, 'value': 465.48},
{'code': '300197', 'name': '铁汉生态', 'percentage': '0.64%', 'volume': 138.93, 'value': 440.39},
{'code': '002562', 'name': '兄弟科技', 'percentage': '0.23%', 'volume': 31.0, 'value': 160.27}]}}]
new_funds = []
for fund in funds:
for k, v in fund.items():
v.update({'code': k})
new_funds.append(v)
df = json_normalize(new_funds, 'hold_stocks', ['company', 'name', 'type', 'code'], meta_prefix='fund_', record_prefix='stock_')
```
电的来源和防水怎么搞?
不如每个窗户前放一个小爱或者 apple soundbar,虽然成本高点,但不听雨声的时候还能用来听全屋立体声呢
我和你有过类似经历,我建议还是让父母盖起来,优点非常多。
家在北京,但是是郊区,父母和老丈人都是在 2016 年把农村的房子盖起来( 2 层或者 2 层半,村委会不让盖太高),但是由于当时父母在城区给我们留了一套作为婚房,而且盖房也不用我们俩出钱,我们没有反对这一步。
现在回过头来看,自从有了孩子,城里楼房我俩根本不怎么住,带孩子回两边父母那有人给做饭,有人给帮忙带孩子,有院子随便玩,楼上楼下乱蹦乱跳不担心扰民,屋里也有专门的儿童娱乐房,还有大客厅追跑大闹甚至骑扭扭车,自行车,你这个楼房怎么比?
我要是你我就会在当地考个事业编公务员这种,父母盖起房子也开心,以后孩子成长也快乐。你要想买房子,家里和你自己在孩子小学钱凑够钱在买一套就可以了。
在家里的弱鸡 j3455 nas 上搭了一个 timescaledb docker,用于存储自用股票数据,接近亿条数据,性能没问题,这个东西就是 postgre+插件,学习几乎没有什么成本
df.pivot_table(index=xxx,columns=xxx,values=xxx,aggfunc='xxx')
哪个当索引,哪个当列,哪个是值,用什么函数聚合,官方教程上就有啊
自用 3.9,公司 3.6,目前唯一遇到的语法问题就是 3.7 及以上可以
```
return *a_tuple,b,c
```
3.6 只能
```
return (*a_tuple,b,c)
```
我用你这样的结构生成了一个 15 万的数据
```
import pandas as pd
from random import randint, choices
opt_t1 = {'小学': ['一年级', '二年级', '三年级', '四年级', '五年级', '六年级'],
'初中': ['初一', '初二', '初三'],
'高中': ['高一', '高二', '高三'],
'大学': ['大一', '大二', '大三', '大四']}
opt_t2 = ['数学', '语文', '英语', '计算机']
t1_list = []
for k in opt_t1.keys():
i = randint(30000, 50000)
tmp = pd.DataFrame({'title2': choices(opt_t1.get(k), k=i), 'title3': choices(opt_t2, k=i)})
tmp['title1'] = k
tmp['题目'] = 'xx'
tmp['答案'] = 'xxx'
t1_list.append(tmp)
df = pd.concat(t1_list)
df['id_num'] = range(1, df.shape[0]+1)
df = df.sample(frac=1)
df.index = range(df.shape[0])
```
结果如下
%timeit df.query("title2=='大二' and title3=='计算机'")
12.5 ms ± 7.16 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
你这秒级接口通常是在里面处理数据或者有 io 吧
@
rationa1cuzz #8 我自己手上正好有一个 12k 的数据集
data.shape
Out[8]: (116419, 12)
%timeit data.query("startCityId==321 and endCityId==3401")
3.14 ms ± 147 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit data.query("startCityId==321 and endCityId==3401 and carType=='8_1'")
12.5 ms ± 7.9 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
data.startCityId.nunique()
Out[10]: 265
data.endCityId.nunique()
Out[11]: 284
carType 是一个字符串,另两个是整数类型,这么小的数据集查询这么慢,肯定是哪里出问题了
我试了试,只能循环转为 dataframe,之后查询就会快很多
```
d = {
'中学': {
'初一': {
'数学': [{
'id': 1,
'题目': 'xx',
'答案': 'xx'
},
{
'id': 2,
'题目': 'xx',
'答案': 'xx'
}
]
},
'初三': {
'语文': [{
'id': 3,
'题目': 'xx',
'答案': 'xx'
},
{
'id': 4,
'题目': 'xx',
'答案': 'xx'
}
]
}
},
'小学': {
'三年级': {
'英语': [{
'id': 5,
'题目': 'xx',
'答案': 'xx'
},
{
'id': 6,
'题目': 'xx',
'答案': 'xx'
}
],
'体育': [{
'id': 7,
'题目': 'xx',
'答案': 'xx'
},
{
'id': 8,
'题目': 'xx',
'答案': 'xx'
}
]
},
'五年级': {
'美术': [{
'id': 9,
'题目': 'xx',
'答案': 'xx'
},
{
'id': 10,
'题目': 'xx',
'答案': 'xx'
}
]
}
}
}
trans = []
for title1_key,title1_val in d.items():
for title2_key,title2_val in title1_val.items():
for title3_key, title3_val in title2_val.items():
tmp_df = pd.DataFrame(title3_val)
tmp_df['title1'] = title1_key
tmp_df['title2'] = title2_key
tmp_df['title3'] = title3_key
trans.append(tmp_df)
df = pd.concat(trans)
```
查询的话,大数据量用 query 方法会更快一点
df.query('id==5')
Out[156]:
id 题目 答案 title1 title2 title3
0 5 xx xx 小学 三年级 英语
df.query("title2=='三年级' and title3=='英语'").id
Out[158]:
0 5
1 6
各远郊区的卫星城区内主干道都不让走,我弟就开了三四年皮卡,还因为这个政策的征求意见稿,他们车友会去写信找政 /府抗议了么,没用
你这个 excel 表就能很快实现,一共也没多少数据