一、构造 da=pd.read_csv(filepath_or_buffer='data.csv',sep='\t') print(da) datas=pd.DataFrame(da) 2、直接赋值 df = pd.DataFrame([[1.4, np.nan], [7, -4], [np.nan, np.nan], [0.75, -1.3]], index=[1, 2, 3, 4], columns=['one', 'two'])
3、Series转换为DataFrame
一种方法是通过字典转
metric = df.loc[0][index]
metric_dict = {'metric_name':metric.index,'ereport_pie_y':metric.values}
data = pd.DataFrame(metric_dict)
另外一种直接通过Series的
to_frame()```
方法
df=metric.to_frame()
如果要index也做为一列,可以用
df = df.reset_index()
二、读值 # 第2行第2列 ds =datas.ix[[1]].values[0][1] ds = datas.loc[1, 'open']
#取第二行
ds = datas.loc[2] # 名为“open"的列 ds = datas["open"] # 选取open列大于4的 ds = datas[datas["open"]>4] # 2-4行,"date","open"列 ds = datas.loc[1:3,["date","open"]] # 第2行 ds = datas.ix[[1]] ds = datas[1:2]
列名
df.columns.values 返回 array
或list(df.columns) 三、赋值 新增列 df['one_sort'] = sort_list df['one_sort'] = 0 按条件赋值 df.one[df.two>0] = 0
nan值处理
# 删除包含NaN值得任何行
df.dropna(axis = 0)
#将所有 NaN 值替换为 0
df.fillna(0)
删除列
```python
df_base.drop(['组件负责人_y','部门_y'],axis=1,inplace=True)```
删除行
.drop()方法若不设置参数inplace=True df_base.drop([0],inplace=True)
```python
# 筛选在的
df123=df123[df123.License_x.isin(['Apache','BSD','MIT','EPL'])]
# 筛选不在的
Version_list=list(df123.Version)
Version_list.remove('9999.0')
df123 = df123[df123.Version.isin(Version_list)]```
删除重复的
```python
df_p=df_p.drop_duplicates(['姓名'],keep=False)```
删除含缺失值的行
```python
df1=df1.dropna(axis = 0,subset =['Version'])```
删除含缺失值的列
df1=df1.dropna(axis = 1,subset =[1])
四、转换 #第1行转为list
params=datas.loc[1].tolist()
字典转dataframe
```python
df=pd.DataFrame.from_dict(dict)```
交集
```python
df12=pd.merge(df1,df2,on=['Component'],how='inner')```
并集
```python
df12=pd.merge(df1,df2,on=['Component'],how='outer')```
```python
差集(从df1中过滤df1在df2中存在的行):```
```python
df1 = df1.append(df2)
df1 = df1.append(df2)
df1 = df1.drop_duplicates(subset=['Component', 'Version'],keep=False)```
移动
# axis指定移动的轴:0为行,1为列
# period:参数指定移动的步幅,可以为正为负
# 整体下移1行
df.shift(axis=0, periods=1)
# 某列下移为新列 ,下移部分为nan
```python
df['open_new']=df['open'].shift(axis=0, periods=1)```
五、排序 # 按某列排序 df=df.sort_values(by='one',ascending=True) # 对行进行排序并获取列ID # Determine the max value and column name and add as columns to df df['Max1'] = df.max(axis=1) df['Col_Max1'] = df.idxmax(axis=1) 六、应用 将排名赋给列 # 按某列排序 df=df.sort_values(by='one',ascending=True) sort_list=[] df_len =df.iloc[:,0].size for i in range(1,df_len+1): sort_list.append(i/df_len) print(sort_list) df['one_sort'] = sort_list 左连接
```python
result = pd.merge(left, right, how='left', on=['key1', 'key2'])
七、打印
显示所有列
pd.set_option('display.max_columns', None)
显示所有行
pd.set_option('display.max_rows', None)
八,导出csv
当有中文时,需要utf-8-sig,才能用excel打开,因为excel能够正确识别用gb2312、gbk、gb18030或utf_8 with BOM 编码的中文,如果是utf_8 no BOM编码的中文文件,excel打开会乱码
csv = df.to_csv(index=False,encoding="utf-8")
return CsvResponse(
csv,
status=200,
headers=generate_download_headers("csv"),
mimetype="application/csv",
)```
![](https://mutouzuo.oss-cn-hangzhou.aliyuncs.com/my/mudouzuo1.png)
标签:并集,df,list,df1,dataframe,python,pd,List,datas
From: https://www.cnblogs.com/bigleft/p/18179013