首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python numpy、pandas之奇技淫巧

python numpy、pandas之奇技淫巧

作者头像
Dragon水魅
发布2026-01-23 14:56:38
发布2026-01-23 14:56:38
760
举报
其实算不上什么奇技淫巧,主要是自己没用过没见过的,或者用的不熟的。 主要提供个方法和角度,具体参数和具体操作都可以自己定制。
DataFrame批量修改某一列
代码语言:javascript
复制
df['a'] = df['a'].map(lambda x: x*2)

ls = []  # 存放修改后的数据
df.loc[:,('股票代码')] = ls
DataFrame添加一空列
代码语言:javascript
复制
df['table'] = ''
DataFrame将空值置为0
代码语言:javascript
复制
df['table'].fillna(0, inplace=True)
DataFrame删除空值
代码语言:javascript
复制
df.dropna(axis="index", how="any", inplace=True)  # 有为空的值,则丢弃
df.reset_index(drop=True, inplace=True)  # 重置索引
DataFrame随机取样
代码语言:javascript
复制
random = df.sample(n=2000, replace=False)  # 不放回抽取
DataFrame 访问/修改 指定行
代码语言:javascript
复制
df.loc[i, 'a']  # 访问第i行的'a'元素
df.loc[i, 'a':'g']  # 访问第i行的'a'到'g'元素
df.loc[i, 'a':'g'] = new_info  # 修改指定行
df.loc[index:index, ('table_1', 'table_2', 'table_3')] = [info_1, info_2, info_3]  # 修改同一行的多列数据
dataframe直接写入数据库
代码语言:javascript
复制
import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:你的密码@localhost:3306/你的数据库名称')
con = engine.connect()  # df是已有的Dataframe类型数据
df.to_sql('example', con=engine, index=False, if_exists='replace')
  • con:数据库配置
  • index:是否将df的index单独写到一列中
  • if_exists: 三个模式:fail,若表存在,则不输出;replace:若表存在,覆盖原来表里的数据;append:若表存在,将数据写到原表的后面。默认为fail。
pandas遍历csv每一行
代码语言:javascript
复制
df = pd.read_csv(r'D:\Export_Output.csv')

for index, row in df.iterrows():
    print(row['info_1'], row['info_2'])  # 遍历指定行
DataFrame转list
代码语言:javascript
复制
df_lilst = df.values.tolist()
txt转csv
代码语言:javascript
复制
dict_data={}
ls = []  # 总列表
ls_name = []  # 表头

with open(path_txt,'r')as df:
    for line in df:
        if line.count('\n') == len(line):  # 换行符跳过
            continue
        for kv in [line.strip().split('\t')]:
            # print(kv)
            ls.append(kv)

for i in ls[0]:
    ls_name.append(i)

frame = DataFrame(ls,columns=ls_name)  # 转为dataframe
frame.to_csv('file_out0.csv',encoding='gbk',index=False,header=False)
删除文件最后一行
代码语言:javascript
复制
for root, dirs, files in os.walk(path):
    for name in files:
        all_path = os.path.join(path, name)  # 文件总路径
        w = open(all_path, 'w')
        w.writelines([item for item in lines[:-1]])  # 删除最后一行
        w.close()
删除文件第一行
代码语言:javascript
复制
for root, dirs, files in os.walk(path):
    for name in files:
        all_path = os.path.join(path, name)  # 文件总路径
        readFile = open(all_path)
        lines = readFile.readlines()
		lines = open(all_path).readlines()
		open(all_path, 'w').writelines(lines[1:])  # 删除第一行
进度条显示
代码语言:javascript
复制
count += 1
print("\r当前进度: {:.2f}%".format(count * 100 / length), end="")  # 进度条显示
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 其实算不上什么奇技淫巧,主要是自己没用过没见过的,或者用的不熟的。 主要提供个方法和角度,具体参数和具体操作都可以自己定制。
  • DataFrame批量修改某一列
  • DataFrame添加一空列
  • DataFrame将空值置为0
  • DataFrame删除空值
  • DataFrame随机取样
  • DataFrame 访问/修改 指定行
  • dataframe直接写入数据库
  • pandas遍历csv每一行
  • DataFrame转list
  • txt转csv
  • 删除文件最后一行
  • 删除文件第一行
  • 进度条显示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档