我正在创建一个这样的视图
CREATE VIEW TEST AS
(
SELECT a.ID, a.E_ID, b.CAT1 AS C1, c.CAT1 AS C2
FROM RECP a
JOIN ART b on (a.ID=b.SKU)
JOIN ART c on (E_ID=c.SKU)
)
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我需要添加两个带有静态信息的附加列(add1、add2)。每行都是相等的。
例如,
ID E_ID C1 C2 add1 add2
1 10 a c NL RS
2 20 b b NL RS
3 30 c a NL RS
4 40 d d NL RS
Run Code Online (Sandbox Code Playgroud)
它不包含在其他表中并且每行都相等。如何将这些列 add1 和 add2 添加到视图中?
我正在python的pandas中加入两个数据帧(A和B).
目标是从B接收所有纯行(在A.client_id = B.client_id上的sql analogue- right join B,其中A.client_id为null)
在大熊猫中我所知道的这个操作是合并但我不知道如何设置条件(where子句):
x=pd.merge(A,B,how='right',on=['client_id','client_id']
Run Code Online (Sandbox Code Playgroud)
谢谢!
有一个这样的 df:
Dat
10/01/2016
11/01/2014
12/02/2013
Run Code Online (Sandbox Code Playgroud)
“Dat”列具有对象类型,因此我尝试使用 to_datetime () pandas 函数将其切换为日期时间:
to_datetime_rand = partial(pd.to_datetime, format='%m/%d/%Y')
df['DAT'] = df['DAT'].apply(to_datetime_rand)
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我的 df 高于 20 亿行时,我遇到了性能问题。所以在这种情况下,这种方法会卡住并且效果不佳。
pandas to_datetime() 函数是否能够通过 chuncks 或通过循环进行迭代转换。
谢谢。
我有一个包含医学文本数据的数据集,我对它们应用 tf-idf 矢量器并计算单词的 tf idf 分数,如下所示:
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer as tf
vect = tf(min_df=60,stop_words='english')
dtm = vect.fit_transform(df)
l=vect.get_feature_names()
x=pd.DataFrame(dtm.toarray(), columns=vect.get_feature_names())
Run Code Online (Sandbox Code Playgroud)
所以基本上我的问题如下 - 当我应用 TfidfVectorizer 时,它会将文本分割成不同的单词,例如:“疼痛”、“头痛”、“恶心”等。如何获得 TfidfVectorizer 输出中的单词组合,例如:“剧烈疼痛”、“丛集性头痛”、“恶心呕吐”。谢谢
尝试使用 NLTK 中的标记化进行简单的释义。
执行以下功能:
from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag
from nltk.corpus import wordnet as wn
def tag(sentence):
words = word_tokenize(sentence)
words = pos_tag(words)
return words
def paraphraseable(tag):
return tag.startswith('NN') or tag == 'VB' or tag.startswith('JJ')
def pos(tag):
if tag.startswith('NN'):
return wn.NOUN
elif tag.startswith('V'):
return wn.VERB
def synonyms(word, tag):
return set([lemma.name for lemma in sum([ss.lemmas for ss in wn.synsets(word, pos(tag))],[])])
def synonymIfExists(sentence):
for (word, t) in tag(sentence):
if paraphraseable(t):
syns = synonyms(word, t)
if syns:
if len(syns) > …Run Code Online (Sandbox Code Playgroud) 我创建了列'dif_pause',基于减去'pause_end'和'pause_start'列值并使用groupby()函数进行均值聚合,如下所示:
pauses['dif_pause'] = pauses['pause_end'] - pauses['pause_start']
pauses['dif_pause'].astype(dt.timedelta).map(lambda x: np.nan if pd.isnull(x) else x.days)
pauses_df=pauses.groupby(["subscription_id"])["dif_pause"].mean().reset_index(name="avg_pause")
Run Code Online (Sandbox Code Playgroud)
我想在groupby部分中包含检查pause_end> pause_start(SQL中是否有一些WHERE子句等).怎么能这样做?
谢谢.
有一个问题。如何将 sql 查询中的列名添加到 Pandas 数据框。我正在做下一步,但 columns=columns 在我的情况下不起作用。
import pymssql
import pandas as pd
con = pymssql.connect(
server="MSSQLSERVER",
port="1433",
user="us",
password="pass",
database="loc")
cur = conn.cursor()
cur.execute("SELECT id from ide")
data=cur.fetchall()
pandas=pd.DataFrame(data)
cur.close()
con.close()
Run Code Online (Sandbox Code Playgroud)
所以当我打印“pandas”时,结果是没有标题。那么我怎样才能收到它们呢?
我正在尝试计算矩阵中行之间的python中的余弦距离并且有几个问题.所以我正在创建矩阵matr并从列表中填充它,然后将其重新整形以用于分析目的:
s = []
for i in range(len(a)):
for j in range(len(b_list)):
s.append(a[i].count(b_list[j]))
matr = np.array(s)
d = matr.reshape((22, 254))
Run Code Online (Sandbox Code Playgroud)
d的输出给了我像:
array([[0, 0, 0, ..., 0, 0, 0],
[2, 0, 0, ..., 1, 0, 0],
[2, 0, 0, ..., 0, 0, 0],
...,
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
[1, 0, 0, ..., 0, 0, 0]])
Run Code Online (Sandbox Code Playgroud)
然后我想使用scipy.spatial.distance.cosine包来计算从第一行到d矩阵中的其他所有的余弦.我该怎么做?它应该是一些循环吗?对矩阵和数组操作没有太多经验.
那么我怎样才能在第二个参数(d [1],d [2]等)中使用for循环,而不是每次都启动它:
from scipy.spatial.distance import cosine
x=cosine (d[0], d[6])
Run Code Online (Sandbox Code Playgroud) python ×9
pandas ×6
sql ×3
numpy ×2
matrix ×1
nlp ×1
nltk ×1
oracle ×1
pymssql ×1
scikit-learn ×1
scipy ×1
tf-idf ×1
trigonometry ×1
view ×1
where-clause ×1