小编oll*_*end的帖子

合并两个Pandas数据帧,在一个时间列上重新采样,进行插值

这是我关于stackoverflow的第一个问题.放轻松我吧!

我有两个不同采集系统同时采集的数据集,采样率不同.一个是非常规则的,另一个则不是.我想创建一个包含两个数据集的数据帧,使用规则间隔的时间戳(以秒为单位)作为两者的参考.不规则采样的数据应在规则间隔的时间戳上进行插值.

这是一些玩具数据,展示了我正在尝试做的事情:

import pandas as pd
import numpy as np

# evenly spaced times
t1 = np.array([0,0.5,1.0,1.5,2.0])
y1 = t1

# unevenly spaced times
t2 = np.array([0,0.34,1.01,1.4,1.6,1.7,2.01])
y2 = 3*t2

df1 = pd.DataFrame(data={'y1':y1,'t':t1})
df2 = pd.DataFrame(data={'y2':y2,'t':t2})
Run Code Online (Sandbox Code Playgroud)

df1和df2看起来像这样:

df1:
    t   y1
0  0.0  0.0
1  0.5  0.5
2  1.0  1.0
3  1.5  1.5
4  2.0  2.0

df2:
    t    y2
0  0.00  0.00
1  0.34  1.02
2  1.01  3.03
3  1.40  4.20
4  1.60  4.80
5  1.70  5.10
6  2.01  6.03 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

带有Seaborn的matplotlib 1.4.2:行标记不起作用

注意:这在1.4.3或更高版本中已得到修复


我使用Seaborn绘图包,我刚刚升级到最新版本的Matplotlib.现在,带有点符号的图不再呈现.之前功能正常的代码会创建空白图,但仅在导入Seaborn时才会创建.这是一些示例代码:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

print matplotlib.__version__
Run Code Online (Sandbox Code Playgroud)

Matplotlib版本:

1.4.2
Run Code Online (Sandbox Code Playgroud)

创建一个没有seaborn的情节:

x = np.linspace(0,2,101)
y = np.sin(2*np.pi*x)
plt.plot(x,y,'.')
Run Code Online (Sandbox Code Playgroud)

sin函数在每个数据点都有点

进口seaborn,打印版本:

import seaborn as sns
print sns.__version__
Run Code Online (Sandbox Code Playgroud)

Seaborn版本:

0.4.0
Run Code Online (Sandbox Code Playgroud)

使用seaborn导入创建线图:

plt.plot(x,y,'-')
Run Code Online (Sandbox Code Playgroud)

sin函数,实线连接每个数据点

使用seaborn导入创建点图会产生一组空白轴:

plt.plot(x,y,'.')
Run Code Online (Sandbox Code Playgroud)

一组空的轴

上面的所有内容都是在IPython笔记本中完成的,但我只是在Spyder中尝试了以下相同的结果:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

print matplotlib.__version__

x = np.linspace(0,2,101)
y = np.sin(2*np.pi*x)
plt.figure()
plt.plot(x,y,'.')

import seaborn as sns
print sns.__version__
plt.figure()
plt.plot(x,y,'-')

plt.figure()
plt.plot(x,y,'.')

plt.show()
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

python numpy matplotlib seaborn

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

Ipython notebook 3禁用了seaborn设置

我刚刚升级到IPython Notebook 3.0版,它禁用了seaborn的格式化.这是一些复制问题的示例代码

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

data = np.random.randn(100)

fig,ax = plt.subplots(figsize = (11,8.5))
ax.plot(data)
Run Code Online (Sandbox Code Playgroud)

这段代码在IPython Notebook V2.4.1中运行得很好(参见http://nbviewer.ipython.org/gist/anonymous/71733c24a68ee464ca40),但在IPython Notebook v3.0中,轴变得不可见(参见http:// nbviewer. ipython.org/gist/anonymous/7525146b07709206908c).

奇怪的是,在V3中,当我切换seaborn导入和matplotlib内联魔法的顺序时,情节通常在我第一次运行时渲染,然后如果我重新运行,则轴和网格线消失.所以它似乎与内联魔法禁用seaborn属性有关.

除了在第一次没有重新执行我的导入之外的任何变通办法吗?

python matplotlib ipython ipython-notebook seaborn

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

Pandas `to_sql` 通过 `if_exists = 'append'` 给出了 `表已存在` 错误

我正在尝试使用 Pandas (v1.3.4)、SQLAlchemy (v1.4.26) 和 PyMySQL (v1.0.2) 写入 MySQL 数据库。我可以使用 pandas 创建一个新表(称为“test_table”)to_sql方法创建一个新表(称为“test_table”),但随后尝试写入同一个表会给出:

OperationalError: (pymysql.err.OperationalError) (1050, "Table 'test_table' already exists")
Run Code Online (Sandbox Code Playgroud)

我之前在 SQLite 中完成过此操作,所以我不确定为什么它在 MySQL 中不起作用。这是我的语法问题,还是数据库服务器配置中可能需要更改某些内容?

这是我正在使用的代码。

首先,导入并建立与数据库服务器的连接:

from sqlalchemy import create_engine
import pymysql
import pandas as pd

sqlEngine = create_engine('mysql+pymysql://username:password@127.0.0.1', pool_recycle=3600)
con  = sqlEngine.connect()
Run Code Online (Sandbox Code Playgroud)

建立具体的数据库名称:

sql = '''
USE my_database
'''
con.execute(sql);
Run Code Online (Sandbox Code Playgroud)

生成一个条目并写入名为的新表test_table

entry = pd.DataFrame({
    'PersonID': 0,
    'LastName': 'smith',
    'FirstName': 'joe',
}, index=[0])
entry.to_sql('test_table', con, if_exists='append')
Run Code Online (Sandbox Code Playgroud)

验证我的条目是否已进入表中:

entry = pd.DataFrame({
    'PersonID': 0,
    'LastName': 'smith',
    'FirstName': 'joe', …
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy pandas pymysql

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