本文目录
- pandas如何获取指定column列号?
- Unknown column in field list'怎么解决?
- Datatoolongforcolumn,该怎么解决?
- “duplicate column name”是什么意思?
- alter table语句的用法?
pandas如何获取指定column列号?
按列取、按索引/行取、按特定行列取
import numpy as np
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速度更快;