代码之家  ›  专栏  ›  技术社区  ›  fragger

如何在Pandas数据帧中将行向右移动一列或向左移动一列?

  •  0
  • fragger  · 技术社区  · 1 年前

    我的数据集是.tsv文件的格式,在使用pd.read_table时,其中一个文件无法正确解析数据。

    当前数据集解析如下所示:

           col2    col3    col4    col5
    abc     1        2      3       nan
    def     4        5      6       nan
    ghi     7        8      9       nan 
    

    需要解析

    col1    col2    col3    col4
    abc     1        2      3       
    def     4        5      6       
    ghi     7        8      9  
    
      
    

    我有两个.tsv文件,它们看起来完全一样,但当它们通过时 pd.read_table() 其中一个像上面的表一样被解析,其中第一列被移位。我不知道为什么会有矛盾。

    这就是我将数据解析为数据帧的方式

    df = pd.read_table("pi_data.tsv", parse_dates=['TimeStamp']) 
    

    pd中数据集的图像

    enter image description here

    正如您所看到的,批处理列名应该位于行值为PBX的上方****

    1 回复  |  直到 1 年前
        1
  •  0
  •   code-sk    1 年前

    下面的行应该重置索引并获得正确的列顺序。

    df=df.reset_index()

    参考- https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reset_index.html

        2
  •  0
  •   user15115597 user15115597    1 年前

    如果要将完整的文件作为表加载。使用seperator将其读取为csv应该会有所帮助

    pd.read_csv('pi_data.tsv',sep='\t')