在第一个索引号pandas dataframe处插入String

时间:2018-02-16 11:18:53

标签: python pandas dataframe

我有一个如下所示的数据框:

  Index Z1  Z2  Z3 Z4
    0   0   0   A  A
    1   0   B   0  0
    2   C   0   C  0

我想将其转换为

 Index  Z1  Z2  Z3 Z4
   ABC 
    0   0   0   A  A
    1   0   B   0  0
    2   C   0   C  0

我想基本上在第0个索引之前插入文本“ABC”,整个行(ABC)将没有任何值 如果索引从1开始而不是0,则可以接受

 Index  Z1  Z2  Z3 Z4
   ABC 
    1   0   0   A  A
    2   0   B   0  0
    3   C   0   C  0

2 个答案:

答案 0 :(得分:3)

您似乎需要设置索引名称或列名称。但是有可能将一些pandas功能移除它。

<div class="navbar navbar-expand navbar-dark" id="nav-container-mobile">
    <div class="container-fluid">
        <ul class="navbar-nav nav-fill w-100">
            <li class="nav-item">
                <a class="nav-link" href="#">Profile</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="">Experience</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Skills</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Projects</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Contact</a>
            </li>
        </ul>
    </div>
</div>

#nav-container-mobile {
  width: 100%;
  height: 70px;
  padding: 0;
  background: #292929;
  z-index: 5;
}

.nav-link { 
  color: #aeaeae; 
}

最好是创建print (df.index.name) None print (df.columns.name) Index df.index += 1 df.index.name = 'ABC' print (df) Index Z1 Z2 Z3 Z4 ABC 1 0 0 A A 2 0 B 0 0 3 C 0 C 0 并按MultiIndex选择:

loc

此外,如果需要使用相同结构的多个mux = pd.MultiIndex.from_product([['ABC'], df.index + 1]) df = df.set_index(mux) print (df) Z1 Z2 Z3 Z4 ABC 1 0 0 A A 2 0 B 0 0 3 C 0 C 0 print (df.loc['ABC']) Z1 Z2 Z3 Z4 1 0 0 A A 2 0 B 0 0 3 C 0 C 0 ,请使用concat DataFrames keys来填充MultiIndex

#sample only, in real df1, df2, ... dfn
dfs = [df,df,df]
df = pd.concat(dfs, keys=('a','b','c'))
print (df)
    Z1 Z2 Z3 Z4
a 0  0  0  A  A
  1  0  B  0  0
  2  C  0  C  0
b 0  0  0  A  A
  1  0  B  0  0
  2  C  0  C  0
c 0  0  0  A  A
  1  0  B  0  0
  2  C  0  C  0

答案 1 :(得分:2)

In [53]: df.rename_axis('ABC').rename_axis('Index',1)
Out[53]:
Index Z1 Z2 Z3 Z4
ABC
0      0  0  A  A
1      0  B  0  0
2      C  0  C  0

1开头的索引:

In [54]: df.set_index(df.index+1).rename_axis('ABC').rename_axis('Index',1)
Out[54]:
Index Z1 Z2 Z3 Z4
ABC
1      0  0  A  A
2      0  B  0  0
3      C  0  C  0

<强>更新

  

主要目的是我有许多这样的数据框,我追加   创建一个最终的csv.So,以区分这些   最终csv中的数据帧我在开头插入文本   每个数据帧

我建议将您的数据存储在HDF5文件中 - 与CSV相比,它有很多优点:

演示:

df.to_hdf(r'/path/to/file.h5', 'ABC', data_columns=True)
df2.to_hdf(r'/path/to/file.h5', 'DEF', data_columns=True)