Loading... # 引用 最近有个需求,对数据进行处理,经过考虑,使用DataFrame来处理是比较轻松的,这里总结一下用法。 # 从excel中读取 读取`c:/tmp/source.xlsx`,并且转换为DataFrame,并且第一列作为index,不参与计算 ```python pd.read_excel('c:/tmp/source.xlsx', index_col=0) ``` # 添加列 ```python source.insert(loc=列要添加到哪个位置?, column='列的名称', value=新列要填充的值) ``` 添加cob列到首位,并且值为原来的第一列的值 ```python source.insert(loc=0, column='cob', value=source[source.columns[0]]) ``` # 删除列 ``` source.drop(columns=['列名']) ``` 删除`temp`列 ```python source.drop(columns=['temp']) ``` # 修改列名(每个列均修改) ```python source.columns = [ 对col进行处理 for col in source.columns] ``` 跳过第一列,后面的每一列都变成cob+原列名 ```python source.columns = [source.columns[0]] + ['cob' + str(col) for col in source.columns[1:]] ``` # 获取非nan的数据 ```python source<div class="flex-column"></div>.dropna() ``` 获取`col`个列从后往前数,非空数据开始,最后6个值 ```python source['col'].dropna().iloc[-6:] ``` # 计算平均数 ```python source.mean() ``` 获取`col`列的平均值 ```python source['col'].mean() ``` # 填充空值 ```python source.fillna(值) ``` 把`col`列的控制用`-1`填充 ```python3 source['col'].fillna(-1) ``` # 遍历整个DataFrame 输出x,y和值 ```python for x in range(0, len(source.index)): # 遍历每一行 for y in range(1, len(source.columns)): # 遍历每一列 print(x, y, source.iloc[x, y]) ``` # 赋值 ```python result.iloc[位置坐标X, 位置坐标Y] = 值 ``` X,Y位置的DataFrame的值赋值为它本身 / 左侧对应的值 * 100, 并且保留两位小数。 ℹ:此处的np为numpy,避免精度损失导致数据错误。 ```python source.iloc[x, y]= np.double(np.round((source.iloc[x, y] / source.iloc[x, y - 1]) * 100, 2)) # 计算百分比 ``` # 导出为文件 导出Excel ```python source.to_excel('文件路径') ``` 导出DataFrame到`c:\a.xlsx` ```python source.to_excel('c:\a.xlsx') ``` 导出CSV ```python source.to_csv('文件路径') ``` 导出DataFrame到`c:\a.csv`, 忽略第一列(并不是数据的第一列,而是index(序号)) ```python source.to_excel('c:\a.csv', index=None) ``` 重置索引 ```python source.reset_index(drop=True) # drop = True 意味着不要添加索引列,否则回多处一列为旧索引 ``` 按值排序 ```python query.sort_values(by='confirmmonth') # 按照confirmmonth列排序 ``` # 待续 持续更新 <div class="hideContent">该部分仅登录用户可见</div> © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏
1 条评论
df1/df2 df1+df2 转置,累加----*。。。。。。。未完待续