简体   繁体   English

Python:如何从 pandas 到 select 索引 dataframe?

[英]Python: how to select indexes from pandas dataframe?

I have a dataframe that looks like the following:我有一个 dataframe,如下所示:

df
     0    1   2  3   4      
0   0.0 NaN NaN NaN NaN 
1   NaN 0.0 0.0 NaN 4.0 
2   NaN 2.0 0.0 NaN 5.0
3   NaN NaN NaN 0.0 NaN 
4   NaN 0.0 3.0 NaN 0.0

I would like to have a dataframe of all the couples of values different from NaN .我想要 dataframe 所有不同于NaN的值对。 The dataframe should be like the following dataframe 应如下所示

df
    i   j   val
0   0   0   0.0 
1   1   1   0.0
2   1   2   0.0
3   1   4   5.0
4   3   3   0.0
5   4   1   0.0
6   4   2   3.0
7   4   4   0.0

Use DataFrame.stack with DataFrame.rename_axis and DataFrame.reset_index :DataFrame.stackDataFrame.rename_axisDataFrame.reset_index一起使用:

df = df.stack().rename_axis(('i','j')).reset_index(name='val')
print (df)
    i  j  val
0   0  0  0.0
1   1  1  0.0
2   1  2  0.0
3   1  4  4.0
4   2  1  2.0
5   2  2  0.0
6   2  4  5.0
7   3  3  0.0
8   4  1  0.0
9   4  2  3.0
10  4  4  0.0

Like this:像这样:

In [379]: df.stack().reset_index(name='val').rename(columns={'level_0':'i', 'level_1':'j'})
Out[379]: 
    i  j  val
0   0  0  0.0
1   1  1  0.0
2   1  2  0.0
3   1  4  4.0
4   2  1  2.0
5   2  2  0.0
6   2  4  5.0
7   3  3  0.0
8   4  1  0.0
9   4  2  3.0
10  4  4  0.0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM