小编Nil*_*age的帖子

Pandas Dataframe拆分为会话

这是我的问题的扩展.

为了使它更简单让我们假设我有一个pandas数据帧如下.

df = pd.DataFrame([[1.1, 1.1, 2.5, 2.6, 2.5, 3.4,2.6,2.6,3.4], list('AAABBBBAB'), [1.1, 1.7, 2.5, 2.6, 3.3, 3.8,4.0,4.2,4.3]]).T
df.columns = ['col1', 'col2','col3']
Run Code Online (Sandbox Code Playgroud)

数据帧:

  col1 col2 col3
0  1.1    A  1.1
1  1.1    A  1.7
2  2.5    A  2.5
3  2.6    B  2.6
4  2.5    B  3.3
5  3.4    B  3.8
6  2.6    B    4
7  2.6    A  4.2
8  3.4    B  4.3
Run Code Online (Sandbox Code Playgroud)

我想根据一些条件对此进行分组.逻辑基于col1 col2值和col3的累积差异:

  1. 转到col1并查找具有相同值的其他实例.
  2. 在我的例子中,col1的第一个值是'1.1',并且它们在第2行的值是相同的.
  3. 然后检查col2值,如果它们相似,则获得col 3的累积差异.
  4. 如果累积差异大于0.5,则将其标记为新会话.
  5. 如果col1值相同但col2值不同,则将它们标记为新会话

预期产量:

   col1 col2 col3 session
0  1.1    A  1.1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

pandas dataframe count行值

我有一个像下面这样的单词列表.

wordlist = ['p1','p2','p3','p4','p5','p6','p7']

数据框如下所示.

df = pd.DataFrame({'id' : [1,2,3,4],
                'path'  : ["p1,p2,p3,p4","p1,p2,p1","p1,p5,p5,p7","p1,p2,p3,p3"]})
Run Code Online (Sandbox Code Playgroud)

输出:

    id path

    1 p1,p2,p3,p4
    2 p1,p2,p1
    3 p1,p5,p5,p7
    4 p1,p2,p3,p3
Run Code Online (Sandbox Code Playgroud)

我想计算路径数据以获得以下输出.是否有可能实现这种转变?

id p1 p2 p3 p4 p5 p6 p7
1  1  1  1  1  0  0  0
2  2  1  0  0  0  0  0
3  1  0  0  0  2  0  1
4  1  1  2  0  0  0  0
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
2
解决办法
2743
查看次数

MySQLdb错误1130:无法获取服务器的正确IP

我正在尝试通过python脚本连接到mysqldb。我已将my.cnf中的绑定地址更改为“ 192.168.56.101”,这是我的服务器IP。

import MySQLdb

db = MySQLdb.connect(host='192.168.56.101',
                     user='root',
                     passwd='pass',
                     db='python')
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我以下错误。

_mysql_exceptions.OperationalError: (1130, "Host '192.168.56.1' is not allowed to connect to this MySQL server")
Run Code Online (Sandbox Code Playgroud)

它已将我的IP地址“ 192.168.56.101”作为“ 192.168.56.1”?我也试过这个:

mysql -u nilani -p pass -h 192.168.56.101
Run Code Online (Sandbox Code Playgroud)

它也会产生同样的错误,

ERROR 1130 (HY000): Host '192.168.56.1' is not allowed to connect to this MySQL serve
Run Code Online (Sandbox Code Playgroud)

为什么无法正确识别我的IP?

python mysql mysql-python

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

使用 Python 发送短信

我发现了一个有趣的帖子,可以使用 python发送短信。我没有检查这种可能性。很高兴收到您对smtplib用于发送短信的评论。

无论如何,我都需要使用像kannel这样的开源网关来发送短信。可以修改这段代码以与 Kannel 一起使用,或者请让我有一些很好的教程来使用 Kannel 使用 python 发送短信。

python sms smtplib kannel

5
推荐指数
0
解决办法
5422
查看次数

使用matplotlib将Pandas DataFrame绘制到饼图中

是否可以DataFrame使用matplotlib 打印饼图?有关于绘制许多图表类型的说明,包括条形图,直方图,散点图等.但饼图丢失了吗?

matplotlib dataframe pandas pie-chart

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

计算两个矩阵的余弦相似度 - Python

我已经定义了两个矩阵,如下所示:

from scipy import linalg, mat, dot
a = mat([-0.711,0.730])
b = mat([-1.099,0.124])
Run Code Online (Sandbox Code Playgroud)

现在,我想计算这两个矩阵的余弦相似度.以下代码有什么问题.它给了我一个错误objects are not aligned

c = dot(a,b)/np.linalg.norm(a)/np.linalg.norm(b)
Run Code Online (Sandbox Code Playgroud)

python numpy matrix cosine-similarity

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

用 Python 转录音频文件

我正在尝试转录一个有点大的音频文件。它的属性如下。

Size : 278.3 MB
Duration : 52 minutes
Format : WAV
Run Code Online (Sandbox Code Playgroud)

以下是我用来将其转换为 60 秒持续时间的代码。你能建议立即转录这个文件吗?

import speech_recognition as sr

r = sr.Recognizer()
with sr.AudioFile('sampleMp3.WAV') as source:
    audio = r.record(source, duration=60) 

command = r.recognize_google(audio)

text_file = open("Output.txt", "w")
text_file.write(command)
text_file.close()
Run Code Online (Sandbox Code Playgroud)

python speech-recognition speech-to-text

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

Pandas Dataframe groupby显示

可以说我有一个像以下一样的DataFrame.

      A      B
0    text1   200
1    text2   200
2    text1   400
3    text2   500
4    text1   300
5    text1   600
6    text2   300
Run Code Online (Sandbox Code Playgroud)

我想打印以下输出

     A             B
0    text1,text2   200
2    text1         400
3    text2         500
4    text1,text2   300
5    text1         600
Run Code Online (Sandbox Code Playgroud)

没有订单,我只想采用列"A"的文本标签来匹配"B"列中的值.df.groupby据我所知,这必须完成.我的努力还没有任何成功.希望你能得到我的问题.

python pandas

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

按ip地址范围过滤Pandas DataFrame

我需要Dataframe按ip地址范围过滤大熊猫.是否可以使用正则表达式?

Ex. From 61.245.160.0   To 61.245.175.255
Run Code Online (Sandbox Code Playgroud)

python ip-address dataframe pandas

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

将Pandas DataFrame写入MySQL数据库

我正在尝试使用以下代码将pandas数据帧写入MySQL数据库.

import pandas as pd
import numpy as np
from pandas.io import sql
import MySQLdb

df = pd.DataFrame([[1.1, 1.1, 1.1, 2.6, 2.5, 3.4,2.6,2.6,3.4,3.4,2.6,1.1,1.1,3.3], list('AAABBBBABCBDDD'), [1.1, 1.7, 2.5, 2.6, 3.3, 3.8,4.0,4.2,4.3,4.5,4.6,4.7,4.7,4.8]]).T

db = MySQLdb.connect("192.168.56.101","nilani","123","test")
cursor = db.cursor()

cursor.execute("DROP TABLE IF EXISTS TEST")

sql = """CREATE TABLE TEST (
         ID  INT NOT NULL,
         COL1 CHAR(20),
         COL2 CHAR(20),  
         COL3 CHAR(20))"""

cursor.execute(sql)

sql.write_frame(df, con=db, name='TEST', flavor='mysql')

db.close()
Run Code Online (Sandbox Code Playgroud)

我一直在提到这个问题和其他资源.我有任何方式得到以下错误.会是什么原因?

sql.write_frame(df, con=db, name='TEST', flavor='mysql')
AttributeError: 'str' object has no attribute 'write_frame'
Run Code Online (Sandbox Code Playgroud)

python mysql dataframe pandas

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