显示所有列
pd.set_option('display.max_columns', None)
读取csv文件,设置 nrows=100 读取前100行数据
df = pd.read_csv('recently_static.csv', low_memory=False, nrows=100)
low_memory : boolean, default True
分块加载到内存,再低内存消耗中解析。但是可能出现类型混淆。确保类型不被混淆需要设置为False。或者使用dtype 参数指定类型。注意使用chunksize 或者iterator 参数分块读入会将整个文件读入到一个Dataframe,而忽略类型(只能在C解析器中有效)
分块处理 chunksize
想使用分块处理,只需在read_csv()方法中加入chunksize=100000(这里假设每一块有100000行)
df=pd.read_csv('data.csv',header=None,chunksize=100000)
然后使用for循环去每块每块地去处理(chunk的type是DataFrame):
for chunk in df:
print(chunk)
筛选某一列数据长度为9的所有数据
df = pd.read_csv('tablename.csv', low_memory=False, dtype=str)
df = df[df['col_name'].str.len() == 9]
dtype=str 这个设置有必要
去重
df.drop_duplicates(subset='mmsi', keep='first', inplace=True)
筛选并删除
df.drop(df[df['mmsi'].str.len() != 9].index, inplace=True)
df[df['mmsi'].str.len() != 9]是筛选条件
df[df['mmsi'].str.len() != 9].index获取索引
保存
df.to_csv('test.csv', index=False)
创建一个空的DataFrame
df = pd.DataFrame([])
创建一个带有列名的DataFrame
title=['mmsi' ,'statictime' ,'imo_no']
df = pd.DataFrame(columns=title)
df.to_csv('test.csv', index=False)
CSV写入追加模式,并且不带表头
df.to_csv('test.csv', mode='a', index=False, header=None)
获取列名
df = pd.read_csv('title.csv')
cols_name=[column for column in df]
大数据给pandas提速可以使用modin
我当前使用的是WIN10系统,由于不然使用依赖库ray;
所以就不做测试了
modin的使用可参考:
https://www.jianshu.com/p/5f6b7019e5a1