精华内容
下载资源
问答
  • pandas写入excel指定位置
    2022-07-22 06:51:31

    利用pandas和openpyxl将dict内的值写入excel,其他值不被覆盖。我们时常用pd.to_excel将dataframe写入到excel中,只能保留最后一次的,之前的写如的全部被覆盖,搞的一脸懵。

    def wrtoex(filepath,dict,col):#filepath为文件名的绝对路径,dict为要写入的内容,key为要写入的行号,value为要写入的内容。clo为列号
        import pandas as pd
        from openpyxl import load_workbook
        book = load_workbook(filepath)
        with pd.ExcelWriter(filepath) as writer:
            writer.book = book
            sheet = book['Sheet1']  # 通过sheet名称 获取 sheet
            for key,value in dict.items():
                sheet.cell(key+2, col, value)  # 修改第二行第17列的值
    if __name__ == '__main__':

           filepath=r"D:\1.xlsx"

            wrtoex(filepath,dict,col)

    #filepath为文件名的绝对路径,dict为要写入的内容,key为要写入的行号,value为要写入的内容。clo为要写入的目标文件的列号。

    更多相关内容
  • 写入Excel指定位置.zip

    2020-07-12 11:25:18
    C#实现对Excel文件的创建,保存,读写,修改操作,程序中包含对单元格格式设置,单元格边框,背景颜色,字体,字体颜色等相关操作,程序已经测试过有效,只需要添加到自己的“解决方案中运行就可以”。
  • NULL 博文链接:https://haha-net.iteye.com/blog/163688
  • pandas处理excel的常用方法技巧(上)

    千次阅读 2020-12-19 08:03:35
    读取excel文件这里要注意的就是第二个参数header如果不设置,pandas会默认把excel的第一行当作columns,header=None的时候pandas会为我们新生成从0开始的数字做columns, 我们可以通过header=1把第二行当作columns;...

    1. 导库

    import pandas as pd

    2. 读取excel文件

    这里要注意的就是第二个参数header如果不设置,pandas会默认把excel的第一行当作columns,header=None的时候pandas会为我们新生成从0开始的数字做columns, 我们可以通过header=1把第二行当作columns;第三个参数index_col是表示用哪一列做index的,如果不设置的话,pandas会默认生成一串从0开始的数字当作index,我们可以设置指定列来当作index,例如index_col=“id”.

    如果出现数据没在excel表格的左上角,可以使用skiprows参数来略过行,也可以使用usecols="F:H"来决定从第几列开始读取

    可以使用sheet_name=参数决定读取第几个sheet

    df = pd.read_excel('d:/用户信息.xlsx', header=1, index_col='id')

    df = pd.read_excee('d:/books.xlsx', skiprows=3, usecols="G:L")

    3. 读取一个对象的头和尾

    我们可以通过head()方法和tail()方法来读取头和尾,不设置参数默认读5行,可以设置int类型参数来决定我们读多少行。

    df.head() # 读前五行

    df.head(7) # 读前七行

    df.tail() # 读后五行

    df.tail(3) # 读后三行

    4. 为对象设置columns

    通过修改对象的columns属性就相当于重新为对象设置了columns

    df.columns = ['订单id', '用户id', '订单状态']

    5. 为对象设置index

    我们可以通过set_index()方法设置index, 如我们可以把订单id这一列设置为index,但是要注意的是设置之后,订单id将不再出现在df.columns属性中了,会变成index的name;第二个参数inplace就地修改,可以设置为True和False.

    df.set_index('订单id', inplace=True)

    5. 写入文件保存

    可以通过to_excel()方法保存到本地.

    df.to_excel('d:/user_id.xlsx')

    6. pandas中表格的行和列

    在一个二维表格中,一行或者一列我们都可以用Series对象来表示。一个Series是当作行还是当作列,完全是由我们加入的方法决定的。

    7. Series简介和Series属性

    Series的结构和字典的结构很相似,不过在Series中不叫keys了,叫index;

    Series的属性有index, name, value, data(快要移除了), 还有其他不常用属性可以到pycharm中一个点全出来了.

    8. Series创建

    创建一个空的Series:

    s1 = pd.Series()

    从字典生成,字典的key是这里的index

    d = {'x':100, 'y':200, 'z':300}

    s2 = pd.Series(d)

    从列表生成,这时候需要两个列表, 一个用作value,一个用作index

    lst1 = [100, 200, 300] # 当作value

    lst2 = ['a', 'b', 'c'] # 当作index

    s3 = pd.Series(lst1, index=lst2)

    9. 用Series来构造DataFrame

    相当于我们用一行一行或者一列一列元素,拼出一个excel表格;

    首先看一下用三个Series对象构造出一个Excel表格的三列,可以用Series的name属性当作列名, index当作每一行的行号;如果index不相同,取index的并集,没有数值的地方给个NaN

    s1 = pd.Series([1, 2, 3], index=[1, 2, 3], name='A')

    s1 = pd.Series([10, 20, 30], index=[1, 2, 3], name='B')

    s1 = pd.Series([100, 200 300], index=[1, 2, 3], name='C')

    df = pd.DataFrame({s1.name:s1, s2.name:s2, s3.name:s3}) # 用的最多的方式, 一列一列的

    如果不以字典方式构造excel表格的话,直接只用Series序列构造,会出现以Series的name当作行号,一行一行的生成:

    df = pd.DataFrame(s1, s2, s3) # 一行一行的

    10. 修改一个值或者修改n个值(自动填充)

    先找到Series再改Series中的元素:

    import pandas as pd

    from datetime import date, timedelta

    def add_month():

    yd = md // 12

    m = d.month + md % 12

    if m != 12

    yd += m // 12

    m = m % 12

    return date(d.year+yd, m, d.day)

    books = pd.read_excel("d:/book.xlsx", skiprows=3, usecols="C:F", index_col=None,

    dtype={'name':str, 'id':str, 'date':str})

    for i in books.index:

    if type(books['name'].at[i]) != int:

    books['name'].at[i]

    books['id'] = 'yes' if i & 1 else 'No'

    books['date'].at[i] = add_month(start, i)

    books.set_index("id")

    第二种方法是直接在DataFrame中改对应的单元格

    for i in books.index:

    books.at[i, 'date'] = 12

    11. 函数填充

    需求,在excel表格中,我们可以根据前面几列的数据按照某种函数进行计算,再添加到指定表格中,这里用程序完成:

    books = pd.read_excel('d:/bookss.xlsx', index_col='ID')

    books["Price"] = books["ListPrice"] * books["Discount"]

    print(books)

    第二种情况就是DataFrame中的每一列Series有一个apply(function)方法,给function传入一个函数可以对这一Series进行函数处理:

    books = pd.read_excel('d:/bookss.xlsx', index_col='ID')

    books["ListPrice"] = books["ListPrice"].apply(lambda x: x+2)

    12. 给数据排序

    使用DataFrame的sort_values()方法进行排序,按照by参数排序, inplace就地, ascending=False是降序;

    如果我们想要先按照某列排序,再按某列排序,by后面可以跟一个列表,ascending也可以给个列表,两种顺序;

    products = pd.read_excel('d:/List.xlsx, index_col='ID')

    products.sort_values(by='Price', inplace=True, ascending=False)

    products.sort_values(by=['Worthy', 'Price'], inplace=True, ascending=[True, False])

    13. 数据筛选、过滤

    很多时候,我们想要展现的数据,是全体的数据,我们只需要展示其中的一部分

    使用loc属性

    loc属性介绍

    # DataFrame对象有loc属性,loc属性可以通过bool值返回从DataFrame对象中筛选出来的DataFrame对象

    # 先创建一个DataFrame对象

    lst1 = pd.Series(["tom", "jerry", "jacky", "wayne", "justin"])

    lst2 = pd.Series([35, 24, 16, 45, 26])

    lst3 = pd.Series([98, 95, 86, 73, 99])

    students = pd.DataFrame({"name":lst1, "age":lst2, "grade":lst3})

    print(students)

    name age grade

    0 tom 35 98

    1 jerry 24 95

    2 jacky 16 86

    3 wayne 45 73

    4 justin 26 99

    # 定义两个函数来判断成绩是否是优秀,年龄是否年轻, 返回的都是bool值

    def young_age(age):

    return age < 30

    def good_grade(grade):

    return grade > 85

    # 通过DataFrame对象的apply方法,对students的元素进行判断取bool值,为了不污染原数据,可以使用拷贝

    cp = students.copy()

    cp["grade"] = cp["grade"].apply(good_grade)

    cp["age"] = cp["age"].apply(young_age)

    print(cp)

    name age grade

    0 tom False True

    1 jerry True True

    2 jacky True True

    3 wayne False False

    4 justin True True

    # 这时候我们可以清晰的看到age和grade都已经被判断为了是否是young,是否是good

    # 有了这一步,下一步我们就可以用bool在loc属性中进行筛选元素了

    students = students.loc[students["age"].apply(young_age)].loc[students["grade"].apply(good_grade)]]

    这里就清晰的看出来我们两次使用loc属性对数据进行清洗,然后重新赋值给了students变量

    print(students)

    name age grade

    1 jerry 24 95

    2 jacky 16 86

    4 justin 26 99

    # 这里就得到了清洗后的数据,即我们要展示的数据,既年轻,成绩又优秀的同学

    下面这个同理, 不过students[“age”]和students[“grade”]还可以换成students.age和students.grade来访问对应的列Series:

    import pandas as pd

    def age_18_to_30(age):

    return 18 <= age < 30 # 判断一个年龄是否是18到30之间

    def level_a(grade):

    return 85 <= grade <= 100 # 判断一个成绩是否是优秀

    students = pd.read_excel("d:/students.xlsx", index_col="ID")

    students = students.loc[ students["Age"].apply(age_to_30) ].loc[ students["score"].apply(level_a) ]

    展开全文
  • pandas操作Excel的常用场景及问题

    千次阅读 2021-01-12 01:02:05
    很多场景下使用pandas就能够胜任手上的excel处理任务,之前写的用python操作具体到excel单元格的方法 参考:贺霆:python操作Excel实现自动化报表​zhuanlan.zhihu.com现在主要介绍使用pandas读取excel的几种常用...

    很多场景下使用pandas就能够胜任手上的excel处理任务,

    之前写的用python操作具体到excel单元格的方法 参考:贺霆:python操作Excel实现自动化报表​zhuanlan.zhihu.com

    现在主要介绍使用pandas读取excel的几种常用场景:

    一、常规读取

    import pandas as pd

    from pandas import DataFrame,Series

    import os

    os.chdir('./')

    # 从指定文件路径读取excel表格

    df = pd.read_excel('data.xlsx')

    二、解决读取报错:UnicodeDecodeError

    原因:pandas读取excel没有指定某列的数据类型

    # 此处是因为excel中某列的数据类型没有指定,例如文本形式的身份证号码等等,解决方法:

    df = pd.read_excel('data.xlsx',converters={'身份证号码':str,'手机号':str})

    #这里的converters是一个dict,里面传入多对键值对可以同时指定读取多列的数据类型

    #数据表格带中文,在读取时候增加encoding ='gbk'即可

    df = pd.read_excel('data.xlsx',converters={'身份证号码':str,'手机号':str},encoding='gbk')

    三、常规写入

    df.to_excel(filePath,index=False)

    #index 可以选择True or False

    四、特殊写入:同时写入多个df到同一个excel相同的子工作表sheet

    #此处需要导入xlwt包

    import xlwt

    #自定义方法

    def Operate_Excel_Copy(df_list,sheet_name='test',save_path='test.xlsx'):

    """

    :param df_list:

    df_list = [{

    'df': df,#一个pandas的dataframe对象

    'start_row': start_row,#指定df写入的起始行

    'start_col': start_col #指定df写入的起始列

    }]

    :param sheet_name: #同一个excel子表格sheet名称

    :param save_path: #文件保存路径

    :return:

    """

    workbook = xlwt.Workbook()

    worksheet = workbook.add_sheet(sheet_name)

    for item in df_list:

    """插入数据表列名"""

    start_row = item['start_row']

    start_col = item['start_col']

    df = item['df']

    col_list = list(df.columns)

    for col in range(start_col,start_col+len(df.columns)):

    value = col_list[col-start_col]

    worksheet.write(start_row,col,value)

    """插入数据部分:start_row+=1 保持数据格式一致"""

    start_row+=1

    for row in range(start_row,start_row+len(df)):

    for col in range(start_col,start_col+len(df.columns)):

    value = df.loc[row-start_row][col-start_col]

    worksheet.write(row,col,value)

    workbook.save(save_path)

    使用方法:直接调用Operate_Excel_Copy方法,传入df_list,sheet_name,save_path等参数

    df_list = [{

    'df': df1,#一个pandas的dataframe对象

    'start_row': start_row,#指定df写入的起始行

    'start_col': start_col #指定df写入的起始列

    },

    {

    'df': df2,#一个pandas的dataframe对象

    'start_row': start_row,#指定df写入的起始行

    'start_col': start_col #指定df写入的起始列

    },...]

    五、特殊写入:同时写入多个df到同一个excel不同的子工作表sheet

    """pandas 将多个df 插入同一张excel表的多张sheet子表"""

    writer = pd.ExcelWriter('%s.xlsx' % FilePath, engine='xlsxwriter')

    df1.to_excel(writer, sheet_name='{}'.format(sheetFileName))

    df2.to_excel(writer, sheet_name='{}'.format(sheetFileName))

    writer.save()

    #参数解释:

    #FilePath:待存储的文件位置

    #sheetFileName:子工作表sheet的命名

    六、从excel复制出的列名转为list

    # s为列名字符串

    s.split(' ')[0].replace('\t',' ').split(' ')

    示例:

    结语:

    pandas搭配xlwt是python操作excel比较经典的模式,也可以用xlwings包来使python与excel之间进行交互,看读者的使用习惯了

    展开全文
  • pandas可以非常方便的写数据到excel,那么如何写多个dataframe到不同的sheet呢? 使用pandas.ExcelWriter import pandas as pd writer = pd.ExcelFile('your_path.xlsx') df1 = pd.DataFrame() df2 = pd....
  • Pandas学习笔记——读写Excel文件

    千次阅读 2020-12-19 08:03:35
    一、环境准备Windows10python3.6.5pandas:可以使用pip进行安装( pip install pandas )开发工具:Anaconda或者PyCharm数据准备:从网络获取或自己生成的Excel格式数据二、学习内容使用Pandas读写Excel格式文件三、...

    一、环境准备

    Windows10

    python3.6.5

    pandas:可以使用pip进行安装(  pip install pandas  )

    开发工具:Anaconda或者PyCharm

    数据准备:从网络获取或自己生成的Excel格式数据

    二、学习内容

    使用Pandas读写Excel格式文件

    三、细节

    1 导入pandas

    import pandas as pd

    2 获取数据源(直接获取数据源、先切换目录后获取数据源)

    读取csv文件数据,转为Pandas的DataFrame。

    data = pd.read_excel("文件名称","表名",nrows=5)

    说明:

    fileName:若文件在当前目录,直接输入"文件名.xlsx"即可,若未在当前路径,需要指定全路径(或者使用os.chdir("your file path")更改路径后使用文件名读取)

    表名:即打开的Excel文件中的工作簿的名称,也可以使用工作簿在文件中的索引

    encoding= : 指定文件的编码类型,常见的有:utf8,gbk,gbk2312等

    nrow= : 指定数据读取的最大行数

    另外,其他参数在此不一一赘述。

    3 将数据写入Excel文件(数据默认保存在当前目录下)

    data.to_excel("save2TestExcel.xlsx",index=False,sheet_name="sheet_name")

    说明:

    savedName: 需要将数据保存的文件名

    index=False: 一般不会去保存数据在Pandas中的索引

    sheet_name= :将数据保存到Excel文件时指定工作簿的名称

    此外,还可以通过:ecoding="编码" 指定文件的编码,

    需要注意:在保存文件时,默认保存在当前目录下。若非当前目录请指定全路径(文件存放的父路径要存在,如不存在可能会报异常)。故,建议使用 os.chdir("your file path") 去更改路径。

    三、整体示例

    importpandas as pdimportos#更改路径

    os.chdir(u"E:\\testData")#获取数据

    data = pd.read_excel("test.xlsx","123",nrows=5)#打印获取到的数据

    print(data)#保存数据

    data.to_excel("save2TestExcel.xlsx",index=False,sheet_name="sheet_name")print("程序执行结束!!!")

    【PyCharm】执行结果示例:

    【Jupyter notebook】演示示例:

    展开全文
  • pandas写入excel

    2021-12-15 11:42:32
    from openpyxl.writer.excel import ExcelWriter writer = pd.ExcelWriter(outfile) # 生成一个句柄对象 sample_stat_no_correct.to_excel(writer,sheet_name='未修正样品数',index=False,freeze_panes=(1,2)) ...
  • Pandas 写入 Excel 的几种情形与方式,覆盖,新增,追加,对齐 # 以下代码默认已经导入 np,pd import numpy as np import pandas as pd # 执行下面示例之前,最好先删除 ./test.xlsx 文件 覆盖所有原有数据,只保留最后一...
  • PandasExcel进行写入操作

    千次阅读 2022-05-10 17:29:14
    import pandas as pd import os file_dir = 'D:/program/write/' # data = pd.read_excel("D:/program/test.xlsx", header=None) data = pd.read_excel("D:/program/test.xlsx", index_col='Qty2') ...
  • python pandas 如何读取Excel数据并重新按照指定格式写入Excel文件呢?说一下个人常见的用法心得:常用且实用的方法:(注意:使用下列方法,记得导入如下库)import pandas as pdimport ast1.读取Excel文件这样的一种...
  • pandas写入excel 不覆盖sheet

    千次阅读 2021-07-27 15:14:25
    #如果有多个模块可以读写excel文件,这里要指定engine,否则可能会报错 writer = pd.ExcelWriter('测试.xlsx',engine='openpyxl') #没有下面这个语句的话excel表将完全被覆盖 writer.book = wb df = pd.DataFrame...
  • python使用pandas指定列名写入excel

    千次阅读 2020-10-29 09:49:47
    import pandas as pd data_dic = {‘姓名’: [‘xl’, ‘xh’], ‘年龄’: [22, 18], ‘身高’: [170, 165]} data = pd.DataFrame(data_dic) print( data ) data.to_excel(‘l.xlsx’)
  • pandasexcel指定列的顺序将想增加列的数据准备好,直接插入到指定列 将想增加列的数据准备好,直接插入到指定列 def writeData(file,result): data=pd.read_excel(file) # OldColumns=data.columns # print("老...
  • 读取excel文件先导包import pandas as pd读取文件 , shee_name是指定表单fr = pd.read_excel('data.xlsx',sheet_name='people')data=df.head()#默认读取前5行的数据data=df.values#获取所有的数据data = df.columns....
  • 使用pandas操作excel

    千次阅读 2021-01-13 19:13:40
    pandas操作excel最近由于要处理一些excel表格,发现pandas可以免去很多的繁琐的人工劳动,在这里记录一下我所用到的知识。导入文档将excel中的工作表导入filename = '***.xls'data = pd.read_excel(filename, None)#...
  • python 解决使用pandas df.to_excel()删除原有sheet一、问题引入你在使用pandas的 df.to_excel(file_path)想要对一个有多张sheet的workbook操作时一定会尴尬的发现:永远只存在最后一次写进去的表,其他的都被清空了...
  • 将爬取的数据填入指定的单元格,而不需要更改Excel格式的情况,或是将一个Excel指定单元格内容复制后插入另一个Excel的单元格。
  • I have working code to write from a large dataframe to separate sheets in an excel file but it takes a long time about 30-40 minutes. I would like to find a way for it to run faster using multiprocess...
  • Pandas写入Excel函数——to_excel 技术总结

    万次阅读 多人点赞 2021-01-10 15:55:09
    Python作为数据分析的一个热门语言,经常会与Excel交互。 下面是我对python写入excel的...1.pandas写入Excel最简单用法:to_excel import pandas as pd df1 = pd.DataFrame({'One': [1, 2, 3]}) df1.to_excel('e..
  • python 使用pandas 读写excel文件

    千次阅读 2022-06-23 16:04:12
    现在本地创建一个excel表,以及两个sheet,具体数据如下:sheet1: sheet2:pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)io:excel文件路径。sheet_name:返回指定的...
  • pandas 实现 Excel 常见操作 (1)

    千次阅读 2020-12-19 08:03:56
    Excel 是数据处理最常用的工具,pandas 是数据分析的利器。那么,Excel 一些常见的操作, pandas 如何实现呢?网上有两篇挺有意思的文章,对此做了详细介绍。我结合自己在学习博文过程中的理解,总结成文。本篇介绍 ...
  • python是最近一门很火的编程语言,简单易上手,无论从事HR、财务、软体开发、网络工程师都有很大帮助,我们可以通过编程语言让繁琐的工作变得轻松简单,今日我向大家分享一个python读取/写入excel表内容的方法(这里...
  • dataframe对象写入excel文件中,可以指定工作表的名字,用法如下: df.to_excel('new_table.xlsx', sheet_name='Sheet1') 上述语句将dataframe变量df的内容,存储到new_table.xlsx文件中, 工作表Sheet1。
  • 本人比较懒,不想按太多用的少的插件,利用已有库pandasexcel文件转换为txt文件。 直接上代码: ''' function:将excel文件转换为text author:Nstock date:2018/3/1 ''' import pandas as pd import re import ...
  • python将数据写入excel
  • pandas读取和写入excel多个sheet表单

    千次阅读 2021-11-09 16:50:18
    excel_reader=pd.ExcelFile('文件.xlsx') # 指定文件 sheet_names = excel_reader.sheet_names # 读取文件的所有表单名,得到列表 df_data = excel_reader.parse(sheet_name=sheet_names[i]) # 读取表单的内容,i是...
  • Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型...一、安装包pandas处理Excel需要xlrd、openpyxl依赖包pip3 install pandaspip3 install xlrdpip3 install openpyxl二、创建Excel写入数据impo...
  • pandasExcel文件的操作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,132
精华内容 2,052
关键字:

pandas写入excel指定位置