【问题标题】:How to combine all rows and columns of an excel file into a single cell of another excel file using python?如何使用python将excel文件的所有行和列组合成另一个excel文件的单个单元格?
【发布时间】:2020-04-27 04:48:25
【问题描述】:

我有一个 Excel 'sample1.xlsx',其中包含以下详细信息:-

    0     1       2
0 Name  Address Phone No.
1  abc   22/2    0154235
2  xyz   12-3    9832033

我正在寻找一种使用 pandas 数据框从上述 excel 文件中删除标题的实现:-

   0     1       2
0 abc  22/2   0154235
1 xyz  12-3   9832033

然后,将所有行和列组合到一个单元格中,元素之间有一个空格,并将输出写入另一个 excel 文件:-

                  0
0 abc 22/2 0154235 xyz 12-3 9832033

任何人都可以在上面的实现中帮助我吗?

我已经实现了下面的代码来删除标题,

import pandas
excel_data_df = pandas.read_excel('sample.xlsx', sheet_name='Sheet1')
df = excel_data_df.iloc[3:]

【问题讨论】:

    标签: python excel python-3.x pandas dataframe


    【解决方案1】:

    看起来您不需要阅读标题 header=None 并使用 df.stack() 堆叠数据帧并转回:

    pd.read_excel('file.xlsx',header=None,
        skiprows=[0]).stack().to_frame().reset_index(drop=True).T
    

    类似地使用df.to_numpy()转换为np数组并使用np.flatten()我们可以创建一个数据框并转置:

    pd.DataFrame(pd.read_excel('file.xlsx').to_numpy().flatten()).T
    

         0     1       2    3     4        5
    0  abc  22/2  154235  xyz  12-3  9832033
    

    【讨论】:

    • .T 代表什么?
    • @AmanpreetKhurana 它用于转置数据帧检查 docs ,顺便说一下它是否有效?
    • 它给出了不同行中的值,而我正在寻找一种实现来在第一列和第一行中给出结果值,即在 (0,0) - 的第一个单元格优秀。
    • @AmanpreetKhurana 你可以试试pd.read_excel('file.xlsx',header=None, skiprows=[0]).stack().to_frame().reset_index(drop=True).T.astype(str).agg(' '.join,1)
    • 这是在位置 (0,0) 添加一个“0”,其余值附加在 (0,1)。
    猜你喜欢
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2013-10-28
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多