小编Col*_*ien的帖子

如何通过executemany()语句转换pandas数据帧以进行插入?

我有一个相当大的pandas dataframe - 50左右标题和几十万行数据 - 我希望使用该ceODBC模块将这些数据传输到数据库.以前我pyodbc在for循环中使用并使用了一个简单的execute语句,但是这个时间非常长(每10分钟1000条记录)......

我现在正在尝试一个新的模块,我正在尝试介绍,executemany()虽然我不太确定参数序列的含义是什么:

    cursor.executemany("""insert into table.name(a, b, c, d, e, f) 
values(?, ?, ?, ?, ?), sequence_of_parameters)
Run Code Online (Sandbox Code Playgroud)

它应该看起来像一个通过每个标题的常量列表

    ['asdas', '1', '2014-12-01', 'true', 'asdasd', 'asdas', '2', 
'2014-12-02', 'true', 'asfasd', 'asdfs', '3', '2014-12-03', 'false', 'asdasd']
Run Code Online (Sandbox Code Playgroud)
  • 这是三行的例子

或者需要什么格式?

作为另一个相关的问题,我怎样才能将常规的pandas数据帧转换为这种格式?

谢谢!

python database executemany pandas

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

Pandas - 根据索引替换值

如果以前有人问过这个道歉,我似乎无法找到答案.

如果我像这样创建一个数据帧:

import pandas as pd, numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100, 2)), columns=list('AB'))
Run Code Online (Sandbox Code Playgroud)

例如,如何将A列中的条目更改为行0 -15中的数字16?换句话说,我如何完全基于索引替换单元格?

python replace numpy dataframe pandas

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

Pandas - Python,基于Date列删除行

我正在尝试根据一个日期列删除数据帧的行; [Delivery Date]

我需要删除超过6个月但不等于'1970'年份的行.

我创建了2个变量:

from datetime import date, timedelta
sixmonthago = date.today() - timedelta(188)

import time
nineteen_seventy = time.strptime('01-01-70', '%d-%m-%y')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用[Delivery Date]列来删除基于这两个变量的行.

有人能提供正确的解决方案吗?

python datetime date pandas

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

将datetime列转换回字符串列?熊猫 - Python

我正在尝试将日期时间列转换回Pandas数据帧中的字符串.

到目前为止我的语法是:

all_data['Order Day new'] = dt.date.strftime(all_data['Order Day new'], '%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)

但是这会返回错误:

描述符'strftime'需要'datetime.date'对象,但收到'Series'.

有谁能告诉我哪里出错了.

python string datetime pandas

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

如何使用null将字符串转换为datetime - python,pandas?

我有一个系列有一些日期时间(作为字符串)和一些空值为'nan':

import pandas as pd, numpy as np, datetime as dt
df = pd.DataFrame({'Date':['2014-10-20 10:44:31', '2014-10-23 09:33:46', 'nan', '2014-10-01 09:38:45']})
Run Code Online (Sandbox Code Playgroud)

我正在尝试将这些转换为日期时间:

df['Date'] = df['Date'].apply(lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

time data 'nan' does not match format '%Y-%m-%d %H:%M:%S'
Run Code Online (Sandbox Code Playgroud)

所以我试着把它们变成实际的空值:

df.ix[df['Date'] == 'nan', 'Date'] = np.NaN
Run Code Online (Sandbox Code Playgroud)

并重复:

df['Date'] = df['Date'].apply(lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

必须是字符串,而不是浮动

解决这个问题的最快方法是什么?

python string datetime type-conversion pandas

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

如何为两列之间的所有日期添加行?

import pandas as pd

mydata = [{'ID' : '10', 'Entry Date': '10/10/2016', 'Exit Date': '15/10/2016'},
          {'ID' : '20', 'Entry Date': '10/10/2016', 'Exit Date': '18/10/2016'}]

mydata2 = [{'ID': '10', 'Entry Date': '10/10/2016', 'Exit Date': '15/10/2016', 'Date': '10/10/2016'},
           {'ID': '10', 'Entry Date': '10/10/2016', 'Exit Date': '15/10/2016', 'Date': '11/10/2016'},
           {'ID': '10', 'Entry Date': '10/10/2016', 'Exit Date': '15/10/2016', 'Date': '12/10/2016'},
           {'ID': '10', 'Entry Date': '10/10/2016', 'Exit Date': '15/10/2016', 'Date': '13/10/2016'},
           {'ID': '10', 'Entry Date': '10/10/2016', 'Exit Date': '15/10/2016', 'Date': '14/10/2016'},
           {'ID': '10', 'Entry Date': …
Run Code Online (Sandbox Code Playgroud)

python datetime resampling melt pandas

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

如何以dayfirst条件读取excel?

我正在尝试通过 pandas 读取 excel。我有一个格式为 DD/MM/YYYY 的日期列。Pandas 会自动将其读取为月份第一,据我所知,没有像 read_csv 那样的 dayfirst 函数。有没有办法在指定日期格式的同时执行 read_excel ?

xlxs_data = pd.DataFrame()
df = pd.read_excel('new.xlsx')
xlsx_data = xlxs_data.append(df, ignore_index=True, dayfirst=True)

TypeError: append() got an unexpected keyword argument 'dayfirst'
Run Code Online (Sandbox Code Playgroud)

python pandas

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

TSQL - 通过引用其他列来填充条目上方和下方的值

我有一张桌子,看起来像:

在此输入图像描述

这可以从以下代码重新创建:

CREATE TABLE dbo.EmpnoProblem
(
DATE date NULL,
WORKNO nvarchar(50) NULL,
OPSEQ int NULL,
RELEASED nchar(10) NULL,
PRODUCT nvarchar(50) NULL,
EMPNO nvarchar(50) NULL
) ;

INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 10, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 20, '10', '5454ABC', NULL);
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, RELEASED, PRODUCT, EMPNO)
VALUES ('2016-06-16', '12345', 30, '10', '5454ABC', '345');
INSERT INTO [dbo].[EmpnoProblem] (DATE, WORKNO, OPSEQ, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2012

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

如何用None-python,pandas dataframe替换字符串值

我有一个比我在这里展示的更大的数据帧,但我想要做的是在一系列中有某些值(甚至更好的整个数据帧)将该值更改为None.我需要这些是None,所以我可以将数据帧写入数据库,它将被识别为null.

series = (['2014/06/05 13:03:56', '2014/07/23 13:03:56', None, '2014/08/21 13:03:56'])
data = pd.DataFrame(series)


0   2014/06/05 13:03:56
1   2014/07/23 13:03:56
2   None
3   2014/08/21 13:03:56

data = pd.to_datetime(data[0], coerce=True)

data
0   2014-06-05 13:03:56
1   2014-07-23 13:03:56
2                   NaT
3   2014-08-21 13:03:56
Name: 0, dtype: datetime64[ns]

data = data.map(str)

data
0    2014-06-05 13:03:56
1    2014-07-23 13:03:56
2                    NaT
3    2014-08-21 13:03:56
Name: 0, dtype: object

data.replace(to_replace='NaT', value=None)
0    2014-06-05 13:03:56
1    2014-07-23 13:03:56
2    2014-07-23 13:03:56
3    2014-08-21 13:03:56
Name: 0, dtype: …
Run Code Online (Sandbox Code Playgroud)

python null pandas

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