精华内容
下载资源
问答
  • python pandas读取csv后,获取标签
    万次阅读
    2018-04-09 19:33:20
    在Python中,经常会去读csv文件,如下

    import pandas as pd
    import numpy as np
    df = pd.read_csv("path.csv")
    data = np.array(df.loc[:,:])
    通过这种方式得到的data,不包含第一行,一般来说,第一行即是列标签。那么如何获取第一行的内容呢。如下

    column_headers = list(df.columns.values)
    what is rational is actual and what is actual is rational.
    凡是合理的都是存在的,凡是存在的都是合理的。
    更多相关内容
  • Excel列标与列号转换

    千次阅读 2019-08-01 11:02:11
    熟悉Excel操作的用户都只有工作表中列标题可以有列标(字母形式)和列号(数字形式)两种,同样VBA代码中也会用到这两种不同的表示方式。 例如应用C6单元格可以如下几种方式,对于Cells的第二个参数,即可以使用...

    熟悉Excel操作的用户都知道在工作表中列标题有列标(字母形式)和列号(数字形式)两种,如下图所示。

    同样在VBA代码中也会用到这两种不同的表示方式。例如应用C6单元格可以使用如下几种方式来引用对象,对于Cells的第二个参数,即可以使用数字列号,也可以使用列标字母,然而对于Range来说参数为字符串,也就是使用列标形式。

    Cells(6,3)
    Cells(6,"C")
    Range("C6")
    

    在代码中使用变量的示例。

    strCol = "C"
    intCol = 3
    Cells(6, intCol)
    Cells(6, strCol)
    Range(strCol & "6")
    

    在VBA代码灵活选择单元格的引用形式,将使得代码简洁高效。某些场景中,可能还是需要实现列标和列号的转换,此时可以使用自定义函数。


    列标字母编号由单个字母开始A,B,C,…,Z,之后为AA,AB,…,ZZ,接下来为AAA,AAB,…,XFD,可以看作是26进制编码的表示形式,和其他的进制转换类似,也是采用除以26取余数的方式进行计算,此处需要额外多一步的处理是,对于余数要转换为字母形式。
    列号转列标的自定义函数代码如下。

    Function Num2Name1(ByVal ColNum As Long) As String
        Dim i As Long
        Dim intMod As Integer
        Num2Name1 = ""
        i = ColNum
        Do While i > 0
            intMod = IIf(i \ 26 = i / 26, 26, i Mod 26)
            Num2Name1 = Chr$(intMod + 64) + Num2Name1
            i = (i - intMod) / 26
        Loop
    End Function
    
    

    【代码解析】
    第7行代码判断循环变量i是否可以被26整除,如果可以,那么intMod赋值为26,否者赋值为余数。
    第8行代码使用Chr函数将1~26的数字转换为大小字母,并和前面步骤已经得到的结果组合为新的字符串。
    第9行代码获得下一次循环需要处理的数字,如果i<=0,则终止循环。


    列标转列号的方法是上述的逆运算,自定义函数代码如下。

    Function Name2Num1(ByVal ColName As String) As Long
        Dim i As Integer
        Dim intLen As Integer
        Name2Num1 = 0
        intLen = Len(ColName)
        If intLen > 0 Then
            ColName = UCase$(ColName)
            For i = 1 To intLen
                Name2Num1 = Name2Num1 + (Asc(Mid(ColName, i, 1)) - 64) * 26 ^ (intLen - i)
            Next i
        End If
    End Function
    
    

    【代码解析】
    第5行代码获取列标字符串的长度。
    第7行代码将列标转换为大写字母。
    第9行代码中使用Mid函数逐位读取列标字符,使用Asc函数转换为ASCII码,减去64实现了将字母变换为1~26的数组序列,根据所在位置不同,乘以26 ^ (intLen - i)转换为相应的数值进行累加。


    使用如下代码可以测试两个自定义函数的结果。

    Sub Demo()
        Debug.Print Name2Num1("XFD")
        Debug.Print Num2Name1(16384)
    End Sub
    
    

    上述两个自定义过程利用进制原理转换实现了列标和列号的转换,但是在VBA中灵活利用对象的属性可以更简洁的实现这个功能。

    Function Num2Name(ByVal ColNum As Long) As String
        Num2Name = ""
        On Error Resume Next
        Num2Name = Split(Cells(1, ColNum).Address, "$")(1)
    End Function
    

    【代码解析】
    第4行代码使用Cells(1, ColNum).Address获取列号为ColNum的列中第一个单元格的绝对引用地址(例如:$ABC$1),Split函数使用$作为分隔符将绝对引用地址拆分具有3个元素的数组(下标从零开始),第2个元素为列标。


     
    Function Name2Num(ByVal ColName As String) As Long
        Name2Num = 0
        On Error Resume Next
        Name2Num = Cells(1, ColName).Column
    End Function
    
    

    【代码解析】
    第4行代码使用使用单元格的Column返回列号。


    这两个自定义函数避繁就简,核心代码就只有一行,代码非常简洁,有些“高手”可能会质疑这样的实现方式,他们认为调用Excel对象就会增加耗时,但是普通实现方式循环过程次数多,最终的整体效果哪个更好,我个人更欣赏简洁的代码。大家有兴趣的话,可以进行耗时对比测试,并在评论区发布测试结果。

    展开全文
  • 我们要对Series和DataFrame的标签进行修改,通常是使用rename函数,还有一种方法就是使用暴力修改法,下面分别针对两种方法进行代码演示以及进行说明。 首先我们先载入pandas库并且生成一个Series以及一个...

    我们要对Series和DataFrame的列标签进行修改,通常是使用rename函数,还有一种方法就是使用暴力修改法,下面分别针对两种方法进行代码演示以及进行说明。

    首先我们先载入pandas库并且生成一个Series以及一个DataFrame,用于后面测试时用到。

    >>> import pandas as pd
    >>> import numpy as np
    
    >>> ser = pd.Series(list('kanny'))
    >>> ser
    0    k
    1    a
    2    n
    3    n
    4    y
    dtype: object
    >>> df = pd.DataFrame(np.arange(12).reshape(3,4), 
                          columns=['A', 'B', 'C', 'D'])
    >>> df
       A  B   C   D
    0  0  1   2   3
    1  4  5   6   7
    2  8  9  10  11

    1. 暴力修改法

    暴力修改法这里直接为修改我们Series与DataFrame的名称。

    1) Series

    首先查看Series的名称:

    >>> ser.name

    会发现什么都运行不出来,因为默认的name为空,所以我们可以直接对其赋值即可修改其名称。

    >>> ser.name = 'kanny'
    >>> ser
    0    k
    1    a
    2    n
    3    n
    4    y
    Name: kanny, dtype: object
    
    >>> ser.name
    'kanny'

    类似的我们同样可以对DataFrame的列进行赋值,但是赋值时必须向量长度与列数一致,不然会报错。


    2) DataFrame

    这里我们就不能使用name了,在DataFrame里面需要使用columns,我们先输出结果看看是长什么样的。

    >>> df.columns
    Index(['A', 'B', 'C', 'D'], dtype='object')

    然后类似进行修改:

    >>> df.columns = ['a', 'b', 'C', 'D']
    >>> df
       a  b   C   D
    0  0  1   2   3
    1  4  5   6   7
    2  8  9  10  11

    注意,我们使用list(df)也会输出列名,但如果使用list(df) = ['a', 'b', 'C', 'D']则会报错。并且需要注意的是,我们不能针对指定的列进行修改,要修改就只能全部进行修改了。

    如果需要针对指定的列进行修改,就需要用到我们的rename函数了。


    2. rename修改法

    首先介绍Series的rename修改法。

    1) Series

    如下所示,即可对Series的标签进行修改。

    >>> ser.rename("Kanny", inplace = True)
    >>> ser
    0    k
    1    a
    2    n
    3    n
    4    y
    Name: Kanny, dtype: object

    对DataFrame的列标签修改也是类似。


    2) DataFrame

    使用如下的方法即可进行修改。

    >>> df.rename(columns={'A':'a', 'B':'b', 'C':'C', 'D':'D'}, inplace = True)
    >>> df
       a  b   C   D
    0  0  1   2   3
    1  4  5   6   7
    2  8  9  10  11

    但我们注意到,其实我们只是修改前面两个字母,所以这里我们也不需要写将A、B、C、D四个列名全部写进去,只用写前面两个就可以了。

    >>> df.rename(columns={'A':'a', 'B':'b'}, inplace = True)
    >>> df
       a  b   C   D
    0  0  1   2   3
    1  4  5   6   7
    2  8  9  10  11
    展开全文
  • 一、单元格的行标和列标 set C=range("A1") c.row 得行号, c.column 得列号 二、列号转字母 ‘将1,2,3,....转为"A","B","C"..... Sub test() For i = 1 To 26 ...

    在vba中,对单元格进行操作,经常需要知道单元格所在的行或列.可用以下方法获取:

    一、单元格的行标和列标

    set C=range("A1")

    c.row  得行号,    c.column 得列号

    二、列号转字母

    ‘将1,2,3,....转为"A","B","C".....

    Sub test()
        For i = 1 To 26
            Debug.Print Chr(i + 64)
        Next
    End Sub

    把数字转化为字母
    比如 5 如何得到 字母 E?

    Replace(Cells(1, 5).Address(0, 0), 1, "")

     

    展开全文
  • pandas将Dataframe某一设置标签

    千次阅读 2019-10-31 13:45:11
    df.set_index(["Column"], inplace=True)
  • 2,那么只需要将dataframe转置即可,就可以借助行索引重置来达到索引重置的目的 data.T.reset_index(drop=True).T 注:什么情况下,才会用到行列索引重置? (1)dataframe非常大,笔者就碰到过几万的...
  • pandas数据处理之 标签字符转数字

    千次阅读 2019-09-27 14:24:28
    机器学习中,当我们进行数据预处理的时候,对于标签非字符的数据,我们往往需要将其转换成字符,因为有的算法可能不支持非数字类型来做特征。 那么怎么快捷地来着这个转换呢,请看我的示例: 1.构建测试数据 ...
  • Python中,经常会去读csv文件,如下 import pandas as pd import numpy as np df = pd.read_csv("url.csv") data = np.array(df.loc[:,:]) 通过这种方式得到的data,不包含第一行,一般来说,第一行即...
  • C# Excel数字转字母列标

    千次阅读 2013-08-06 09:32:37
    var dividend = index; var columnName = string.Empty; while (dividend > 0) { var modulo = (dividend - 1) % 26; columnName = Convert.
  • pandas根据现有新添加一

    千次阅读 2021-01-26 20:38:27
    pandas中一个Dataframe,经常需要根据其中一再新建一,比如一个常见的例子:需要根据分数来确定等级范围,下面我们就来看一下怎么实现。 def getlevel(score): if score < 60: return "bad" elif score &...
  • 问题描述:需要对excel某一行中的若干个单元格进行循环读取,因为列标是英文大写字母,存在合并单元格,同时涉及到”Z“之后的”AA“,”AB“列标,无法简单的使用for对asc码进行循环。 解决方案:使用数组,...
  • 熟悉VBA 但是不熟悉 xlwings 怎么办,可以调用 api 操作,如 xlwings 取消自动换行,xlwings选中某一列,xlwings获取最大行号,行标,最大列号,列标等等 个人常用代码如下,返回结果,截图如下 import xlwings ...
  • Public Sub 4_085() Dim ColumnName As String Dim myCol As Integer Dim myRange As Range myCol = 55 '指定标号 ... Set myRange = Cells(1, myCol) '指定该标号的任意单元格 ColumnName =...
  • dataframe的对应中找到这个值 用这个关系去对应到这一行 再这一行对应于想要的某个即可 代码示例 import pandas as pd data = { "aa":['c','h','e'], "bb":[4,5,6], "cc":[7,8,9] } df = pd.DataFrame...
  • Excel中将数字转化为列标字母的公式

    千次阅读 2011-10-19 16:05:14
    下面的公式将A1单元格中的数字转化为Excel列标字母,假如A1单元格中的数字为100,公式返回结果为CV,即第100列的列标CV。  =SUBSTITUTE(ADDRESS(1,A1,4),"1","")  ADDRESS函数的第三个参数...
  • PHP 实现数字转字母,生成Excel列标

    千次阅读 2017-12-12 10:22:06
     * 数字转字母 (类似于Excel列标)  * @param Int $index 索引值  * @param Int $start 字母起始值  * @return String 返回字母  */ function IntToChr($index, $start = 65) {  $str = '';  if ...
  • python对csv文件新增

    千次阅读 2021-02-19 17:28:19
    增加: 增加后: 完整代码: import pandas as pd #pandas是一个强大的分析结构化数据的工具集 # 将csv文件内数据读出 ngData=pd.read_csv('../data/namegender.csv') #添加新‘名字长度’(length) ...
  • UI标签库专题二:JEECG智能开发平台Column() 子标签  1.1. Column() 子标签 1.1.1. 示例 年龄" field="age" query="true" extend="{data-options:{required:false,groupSeparator:\"','\"},...
  • 灵活:数据源、下拉框内显示的、列名、可搜索关键字等可自由定义 方便:可输可选/支持键盘操作/模糊过滤/自动完成匹配 标准:通过继承combobox实现,可单独使用,也可嵌入datagridview使用 水平有限,欢迎大家多...
  • Origin2017绘图给部分点添加标签

    万次阅读 2018-11-24 09:18:35
    使用Origin绘图时,有时只想给图中的部分点添加标签。例如下图,所有点皆有标签: 给部分点添加标签时,只需要使得标签部分为空就行了。例如,下面的数据: 将D设为标签之后,便可以得到我们想要的图了。 ...
  • 拿wps举例,MS的Excel也有相应功能。 用到的功能:格式条件 第一步,选中你想查找的数据区域 第二步,打开格式条件(格式→格式条件→新建规则→如图) 第三步,输入最大值最小值公式即可。(注意公式=A2,一定是...
  • Python之pandas新增

    万次阅读 2020-12-28 19:29:51
    两列相除得到新,添加"ratio_paris_antwerp", >>> air_quality["ratio_paris_antwerp"] = air_quality["station_paris"] / air_quality["station_antwerp"] >>> air_quality.head() station_antwerp station_...
  • 用Python修改excel中一数据可以使用pandas库,先读取excel文件,然后使用pandas库来修改一,然后写入文件即可。怎样用python,读取excel中的一数据sheet.cell_value(r,c) ,r行数自己循环一下,c是你要的...
  • 先放一张布局效果效果图实现这一布局效果时,主要应用了rowspan、colspan跨行和跨的属性布局。所跨的行或者其他行或者中也是占位的。比如:第一项项目基本信息是跨过5行,因此接下来的4行中,第一...
  • excel2003中,用A表示第一,B表示第二….Z表示第26,AA表示27,AB表示28。1、输入用字母表示的号编号,输出它是第几 —->把26进制转成10进制 //把26进制转成10进制 int index(char *str,char x) { ...
  • BootStrap Table:参数

    万次阅读 多人点赞 2018-06-11 22:04:02
    官方文档地址:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/参数表格的...名称标签类型默认描述radiodata-radioBooleanFALSE设置为 True 在列前添加一个固定宽度的 单选按钮checkboxdata-che...
  • python取第一

    万次阅读 2020-11-30 11:08:15
    广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的... 因为地图瓦片就是按照层级、行、规则组织的一张张图片(如下图,14是瓦片的级别,13478是行号,6202是号),所以想到可以试...
  • python 定义N行2二维数组与赋值

    千次阅读 2021-03-17 20:27:04
    python中怎么用花括号定义一个5行4的数组花括号是字典,不是数组。python:定义函数,输入一个m维数组X和一个整数n,输# Python3.6import numpy as npwhile True: x = input("输入一个m维数组,元素以空格分开:") try...
  • :awk 命令中$n 代表第n,{print}代表输出哪些,默认全输出。 $ awk ' $2 == 1 {print}' test1.txt > test2.txt $ cat test2.txt 10000042 1 无 0 0 0 10000073 1 无 0 0 0 10000133 1 无 0 0 0 ...
  • Excel获取指定号的字母

    千次阅读 2018-10-24 17:05:29
    Public Function NumtoCol(Numbers As Integer) As String Dim i1 As Integer, i2 As Integer, i3 As Integer ...MsgBox "号:" & intCol & ",对应的字母为:" & NumtoCol(intCol) End Sub

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,226,115
精华内容 490,446
关键字:

列标在前