【问题标题】:data frame and series in python to create excel columnpython中的数据框和系列创建excel列
【发布时间】:2020-03-20 09:56:51
【问题描述】:

有没有办法在 python 中从具有多行和多列的 Excel 工作表中创建数据框或系列,例如

并期望输出全部在一列中

为数据帧和系列尝试了不同的代码,但未达到我的预期,系列在我使用的代码中逐字逐句地做

import numpy as np
sr=pd.read_excel('eng.xlsx')
s1=pd.Series(sr, expand=True)
print s1  

【问题讨论】:

    标签: python excel pandas dataframe series


    【解决方案1】:

    使用DataFrame.stack 和删除MultiIndex by Series.reset_index 和drop=True:

    s1 = sr.stack().reset_index(drop=True)
    

    或使用numpy.ravel 或numpy.flatten 将值转换为numpy array:

    s1 = pd.Series(sr.values.ravel())
    s1 = pd.Series(sr.values.flatten())
    

    示例:

    sr = pd.DataFrame({
            'A':list('ab'),
            'B':list('cd'),
            'C':list('ef'),
    })
    
    print (sr)
       A  B  C
    0  a  c  e
    1  b  d  f
    
    s1 = sr.stack().reset_index(drop=True)
    print (s1)
    0    a
    1    c
    2    e
    3    b
    4    d
    5    f
    dtype: object
    

    【讨论】:

    • 如果我不希望它打印具有非值的单元格,我应该在代码中添加什么,因为某些行中有更多的单词并且它的打印非
    • @IbrahimOzaeri - stack 没有删除值?所以这意味着它没有缺失值并且删除需要s1 = s1[s1 != 'non'],因为s1 = s1.dropna()我认为不起作用
    • 即使添加了 !=non 它仍然打印空单元格,如这张图片ibb.co/PjBqLFR
    • @IbrahimOzaeri - 你能检查一下s1 = s1.dropna() 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2017-10-21
    • 2021-12-28
    相关资源
    最近更新 更多