1.判断是否为nan值
import math
print(math.isnan(a)
2.pandas查找iloc对应的loc值
(在这个代码中,可以既查找对应的loc,又可以查找对应的iloc)
df.loc[df.iloc[-1].name,'tp']
3.dataframe中copy的用法
pandas.DataFrame.copy
DataFrame.copy(deep=True)
当deep=false相当于引用,原值改变复制的结果随着改变。
data=DataFrame.copy(deep=False)
等价于
data=DataFrame
4.pandas 查看数据的基本信息
s.describe(): # 描述性统计信息
s.index: # 标签 <Index>
s.index.values: # 标签 <ndarray>
s.values: # 数据 <ndarray>
s.to_numpy(): # 数据 <ndarray> (推荐)
s.head(n): # 前n个
s.tail(n): # 尾n个
s.memory_usage(): # 占用内存(字节B)
s.name: # 名字
s.dtype: # 类型
检查唯一性
s.unique(): # 唯一的数据 <ndarray>
s.value_counts: # 唯一值的个数 <Series>
s.is_unique: # 所有数据是否唯一 <bool>
检查长度
len(s): # 所有数据(包括空值)长度
s.count(): # 非空数据长度
检查空值
len(s) == s.count(): # <bool> True 表示没有空值
s.notna(): # <Series(bool)> 对应元素是否是空值
all(s.notna()): # <bool> True 表示没有空值
5.查看pandas的最大列宽
pd.set_option('display.max_columns', None)
6.pandas apply 如何进行并行化处理
#Way:
from tqdm import tqdm
import pandas as pd
tqdm.pandas(desc='pandas bar')
df['title_content'] = df.progress_apply(lambda x: _title_content(x['title'], x['content']), axis=1)
#Way:
#pandas进度条,有空可以试试哈。map也是一样的, progress_map
- Python多线程pool.map展示进度条方法
https://www.cnblogs.com/azureology/p/13212723.html
- python apply的几种并行化处理方法
https://blog.csdn.net/jingyi130705008/article/details/113949730
- pandas使用merge拼接两个dataframe,导致行数和左侧df不一致
df_new = pd.merge(df_sd, df_sd_csv_path, on= ‘obs_seg_name’, how=‘inner’)
经定位主要原因是因为右侧df有重复行导致。