column

生活经验012

本文目录

  1. pandas如何获取指定column列号?
  2. Unknown column in field list'怎么解决?
  3. Datatoolongforcolumn,该怎么解决?
  4. “duplicate column name”是什么意思?
  5. alter table语句的用法?

pandas如何获取指定column列号?

按列取、按索引/行取、按特定行列取

import numpy as np

column,第1张

from pandas import DataFrame

import pandas as pd

df=DataFrame(np.arange(12).reshape((3,4)),index=['one','two','thr'],columns=list('abcd'))

df['a']#取a列

df[['a','b']]#取a、b列

#ix可以用数字索引,也可以用index和column索引

df.ix[0]#取第0行

df.ix[0:1]#取第0行

df.ix['one':'two']#取one、two行

df.ix[0:2,0]#取第0、1行,第0列

df.ix[0:1,'a']#取第0行,a列

df.ix[0:2,'a':'c']#取第0、1行,abc列

df.ix['one':'two','a':'c']#取one、two行,abc列

df.ix[0:2,0:1]#取第0、1行,第0列

df.ix[0:2,0:2]#取第0、1行,第0、1列

#loc只能通过index和columns来取,不能用数字

df.loc['one','a']#one行,a列

df.loc['one':'two','a']#one到two行,a列

df.loc['one':'two','a':'c']#one到two行,a到c列

df.loc['one':'two',['a','c']]#one到two行,ac列

#iloc只能用数字索引,不能用索引名

df.iloc[0:2]#前2行

df.iloc[0]#第0行

df.iloc[0:2,0:2]#0、1行,0、1列

df.iloc[[0,2],[1,2,3]]#第0、2行,1、2、3列

#iat取某个单值,只能数字索引

df.iat[1,1]#第1行,1列

#at取某个单值,只能index和columns索引

df.at['one','a']#one行,a列

2.按条件取行

选取等于某些值的行记录 用 ==

df.loc[df[‘column_name’] == some_value]

选取某列是否是某一类型的数值 用 isin

df.loc[df[‘column_name’].isin(some_values)]

多种条件的选取 用 &

df.loc[(df[‘column’] == some_value) & df[‘other_column’].isin(some_values)]

选取不等于某些值的行记录 用 !=

df.loc[df[‘column_name’] != some_value]

isin返回一系列的数值,如果要选择不符合这个条件的数值使用~

df.loc[~df[‘column_name’].isin(some_values)]

Unknown column in field list'怎么解决?

有可能是你的sql语句value()里没有引号,检查一下sql语句和你的表结构

Datatoolongforcolumn,该怎么解决?

Data too long for column 'Sex' 说明输入的Sex数据过长,可能Sex字段在数据库中设置的是1个字符,使用‘F’或‘M’输入,但你输入汉字‘男’,‘女’了 。Sex字段需要改成NChar,或char(2)

“duplicate column name”是什么意思?

重复的列名。出现Duplicatecolumnname错误,一般是sql语句查询的时候,出现了相同的列名。出现此类错误我们首先要看一下查询的sql语句,如果是多表关联查询,最后形成一个统一的查询,多表中有字段名相同,会导致错误,解决方法一种是通过as进行重命名,一种是修改字段名。其次我们需要看一下数据库表,两个表字段名是否相同。然后对其中一个表的字段名进行修改,也可以在sql语句查询的时候,使用as对字段名进行重新命名。扩展资料:在多表联合查询的时候可能会遇到的问题,两张表的字段重复了,sql不知道该查询哪个字段,一般遇到这种情况给字段一个别名就能解决了。在操作数据库时,出现“Duplicatecolumnname‘XXX’”,一般两种情况:

1.是在前台添加数据库字段时,数据库中字段已经存在,如ALTERTABLE`cdb_posts`ADD`orgid`INT(6)UNSIGNEDNOTNULLDEFAULT'0';当数据库中已经有了orgid这个字段时,在插入字段会报错:字段orgid重复。

2.多表查询时未制定确定每个表的字段出错。

alter table语句的用法?

一、alter table介绍

alter table是对已有的表中的列进行添加、删除修改

二、alter table对列的操作

#在表中添加列

alter table 表名 add 列名 指定列表数据类型

#在表中删除列

alter table 表名 drop column 列名 (禁用)

#改变表中的数据类型

alter table 表名 alter column 列名 修改的新列表数据类型

#改变表名

alter table 表名 change 旧列名 新列名

三、根据索引值删除索引系列号以及对里面的数据进行清空(待解决,现在用的truncate进行代替)

SQL创建索引和删除索引(学习地址)

四、自增

ALTER TABLE `user` AUTO_INCREMENT=0;

mysql修改已存在的表增加ID属性为auto_increment自动增长的方法

五、拓展

delete from 表名 《---------------------------等价于-----------------------------》 truncate 表名

其中delete是一行一行删除的(不删除索引号),truncate是删除表重新建一张与原来结构一致的新表(索引号一并删除),truncate相当于delete速度更快;