美文网首页
Pandas 操作数据行

Pandas 操作数据行

作者: Noza_ea8f | 来源:发表于2020-02-14 16:11 被阅读0次

    表一

    image.png

    表二

    image.png

    表追加

    表追加,重设索引,原索引作为index列
    import pandas as pd
    
    df_1 = pd.read_excel(io='exls/rows.xlsx', sheet_name='Sheet1')
    df_2 = pd.read_excel(io='exls/rows.xlsx', sheet_name='Sheet2')
    # 表追加,reset_index(),重设索引,原索引作为index列
    df_new = df_1.append(df_2).reset_index()
    print(df_new)
    
    表追加还可以使用
    df_new = pd.concat([df_1, df_2]).reset_index(drop=True)
    
    output
        index  ID NAME
    0       0   1   S1
    1       1   2   S2
    2       2   3   S3
    3       3   4   S4
    4       4   5   S5
    5       5   6   S6
    6       6   7   S7
    7       7   8   S8
    8       8   9   S9
    9       9  10  S10
    10      0  11  S11
    11      1  12  S12
    12      2  13  S13
    13      3  14  S14
    14      4  15  S15
    15      5  16  S16
    16      6  17  S17
    17      7  18  S18
    18      8  19  S19
    19      9  20  S20
    
    去掉index列
    # 表追加,reset_index()重设索引,原索引作为index列,去掉index列加入参数reset_index(drop=True)
    df_new = df_1.append(df_2).reset_index(drop=True)
    
    output
        ID NAME
    0    1   S1
    1    2   S2
    2    3   S3
    3    4   S4
    4    5   S5
    5    6   S6
    6    7   S7
    7    8   S8
    8    9   S9
    9   10  S10
    10  11  S11
    11  12  S12
    12  13  S13
    13  14  S14
    14  15  S15
    15  16  S16
    16  17  S17
    17  18  S18
    18  19  S19
    19  20  S20
    

    追加一条记录

    # 追加一行数据
    new_data = pd.Series({'ID': 21, 'NAME': 'Peter'})
    df_new= df_new.append(new_data, ignore_index=True)
    
    output
    17  18    S18
    18  19    S19
    19  20    S20
    20  21  Peter
    

    修改指定某行某列(单元格)的数据at

    # 修改索引号为18,的NAME值
    df_new.at[18, 'NAME'] = '张三'
    
    output
    18  19     张三
    19  20    S20
    20  21  Peter
    

    整行替换

    # 整行替换iloc
    new_data = pd.Series({'ID': 20, 'NAME': '李四'})
    df_new.iloc[19] = new_data
    
    output
    17  18    S18
    18  19     张三
    19  20     李四
    20  21  Peter
    

    插入行

    # 插入行
    new_data = pd.Series({'ID': 100, 'NAME': '王五'})
    df_part1 = df_new[:15]  # 先做切片
    df_part2 = df_new[15:]
    df_new = df_part1.append(new_data, ignore_index=True).append(df_part2).reset_index(drop=True)
    print(df_new)
    

    注意不要忘了reset_index(drop=True)

    output
    15  100     王五
    16   16    S16
    17   17    S17
    18   18    S18
    19   19     张三
    20   20     李四
    21   21  Peter
    

    删除指定行

    # 删除指定行
    df_new.drop(index=[16, 17, 18], inplace=True)
    
    output
    14   15    S15
    15  100     王五
    19   19     张三
    20   20     李四
    21   21  Peter
    
    删除指定范围的行
    df_new.drop(index=range(16, 19), inplace=True)
    

    相关文章

      网友评论

          本文标题:Pandas 操作数据行

          本文链接:https://www.haomeiwen.com/subject/lubkfhtx.html