Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列中融化不均匀数据并使用pandas忽略NAN_Python_Pandas_Dataframe_Melt - Fatal编程技术网

Python 在列中融化不均匀数据并使用pandas忽略NAN

Python 在列中融化不均匀数据并使用pandas忽略NAN,python,pandas,dataframe,melt,Python,Pandas,Dataframe,Melt,一定有一种优雅的方法可以做到这一点,但我还没有找到。我有一个大数据框,看起来像这样: df Name 0 1 2 3 4 1 apple 2016 W1 NaN NaN NaN NaN 2 orange 2016 W1 2017 W2 NaN NaN NaN 3 banana 2016 W2 2017 W3

一定有一种优雅的方法可以做到这一点,但我还没有找到。我有一个大数据框,看起来像这样:

df
    Name    0           1           2        3      4   
1   apple   2016 W1     NaN         NaN      NaN    NaN 
2   orange  2016 W1     2017 W2     NaN      NaN    NaN 
3   banana  2016 W2     2017 W3     NaN      NaN    NaN  
4   pear    2016 W3     2016 W4     2016 W5  NaN    NaN
6   melon   2016 W2     2016 W4     2017 W5  2017 W6 2017 W7
df_result

    Name    week       
    apple   2016 W1     
    orange  2016 W1
    orange  2017 W2     
    banana  2016 W2 
    banana  2017 W3
    pear    2016 W3    
    pear    2016 W4    
    ... etc. 
我想融合数据,这样只有两列
name
week
。所以结果应该是这样的:

df
    Name    0           1           2        3      4   
1   apple   2016 W1     NaN         NaN      NaN    NaN 
2   orange  2016 W1     2017 W2     NaN      NaN    NaN 
3   banana  2016 W2     2017 W3     NaN      NaN    NaN  
4   pear    2016 W3     2016 W4     2016 W5  NaN    NaN
6   melon   2016 W2     2016 W4     2017 W5  2017 W6 2017 W7
df_result

    Name    week       
    apple   2016 W1     
    orange  2016 W1
    orange  2017 W2     
    banana  2016 W2 
    banana  2017 W3
    pear    2016 W3    
    pear    2016 W4    
    ... etc. 
我坚持的是如何忽略NaN值,同时确保不丢失任何值

当我做pd.melt(df,id_vars=['Name'])时,我不确定结果是否是我想要的

使用堆栈

df.set_index('Name').stack().reset_index(1,drop = True)

Name
apple     2016 W1
orange    2016 W1
orange    2017 W2
banana    2016 W2
banana    2017 W3
pear      2016 W3
pear      2016 W4
pear      2016 W5
melon     2016 W2
melon     2016 W4
melon     2017 W5
melon     2017 W6
melon     2017 W7
dtype: object
或者使用熔体进行清洗

df.melt(id_vars='Name').sort_values('Name').dropna()
使用堆栈

df.set_index('Name').stack().reset_index(1,drop = True)

Name
apple     2016 W1
orange    2016 W1
orange    2017 W2
banana    2016 W2
banana    2017 W3
pear      2016 W3
pear      2016 W4
pear      2016 W5
melon     2016 W2
melon     2016 W4
melon     2017 W5
melon     2017 W6
melon     2017 W7
dtype: object
或者使用熔体进行清洗

df.melt(id_vars='Name').sort_values('Name').dropna()
Op1

凤凰社2

凤凰社3

Op1

凤凰社2

凤凰社3


我喜欢Op1best@JAG2024YW~(-),BTW:考虑速度,OP3应该是FASTI样的OP1best@JAG2024YW~(-),BTW:考虑速度,OP3应该是快的