在python3中过滤和转置数据框

时间:2019-06-27 10:35:33

标签: python-3.x pandas dataframe

我使用熊猫制作了一个csv文件,并尝试将其用作下一步的输入。当我使用pandas打开文件时,它将类似于以下示例:

示例:

   Unnamed: 0  Class_Name Probe_Name small_example1.csv  small_example2.csv  small_example3.csv
0           0  Endogenous       CCNO                                  196                                    32                                    18
1           1  Endogenous        MYC                                  962                                   974                                  1114
2           2  Endogenous      CD79A                                  390                                   115                                   178
3           3  Endogenous      FSTL3                                   67                                   101                                   529
4           4  Endogenous       VCAN                                  943                                   735                                  9226

我想绘制一个图,为此,我必须更改数据结构。 1-我要删除未命名列 2-然后我要为热图制作一个数据框。为此,我想使用以下列“ probe_name”,“ small_example1.csv”,“ small_example2.csv”和“ small_example3.csv” 3-我也想转置数据帧。 这是预期的输出:

Probe_Name  CCNO    MYC CD79A   FSTL3   VCAN
small_example1.csv  196 962 390 67  943
small_example1.csv  32  974 115 101 735
small_example1.csv  18  1114    178 529 9226

我打算使用以下代码来做到这一点:

df = pd.read_csv('myfile.csv')
result = df.transpose()

,但它不返回我想要的内容。你知道如何解决吗?

2 个答案:

答案 0 :(得分:1)

df.drop(['Unnamed: 0','Class_Name'],axis=1).set_index('Probe_Name').T

结果:

Probe_Name          CCNO   MYC  CD79A  FSTL3  VCAN
small_example1.csv   196   962    390     67   943
small_example2.csv    32   974    115    101   735
small_example3.csv    18  1114    178    529  9226

答案 1 :(得分:0)

这是一个建议:

更改1和2可以一次性解决:

df = df.loc[:, ["Probe_Name", "small_example1.csv", "small_example2.csv", "small_example3.csv"]] # This only retains the specified columns

为了使更改3(转换)能够按需工作,需要将列Probe_Name设置为索引:

df = df.set_index("Probe_Name", drop=True)
df = df.transpose()