【问题标题】:concatenate excel datas with python or Excel使用 python 或 Excel 连接 excel 数据
【发布时间】:2017-02-06 12:44:43
【问题描述】:

这是我的问题,我有一个包含 2 列的 Excel 工作表(见下文)

我想打印(在 python 控制台或 excel 单元格中)此表单下的所有数据:

 "1" : ["1123","1165", "1143", "1091", "n"], *** n ∈ [A2; A205]***

我们并不真正关心 B 列。但我需要在此特定表单下添加每个邮政编码。

有没有办法用 Excel 或 Python 用 Panda 来做呢? (如果您有任何其他想法,我很想听听)

干杯

【问题讨论】:

    标签: python excel pandas xlsxwriter


    【解决方案1】:

    我认为您可以使用parse_cols 解析第一列,然后通过skiprowsread_excel 中过滤掉从205 到1000 的所有列:

    df = pd.read_excel('test.xls', 
                       sheet_name='Sheet1', 
                       parse_cols=0, 
                       skiprows=list(range(205,1000)))
    print (df)
    

    最后使用tolist 将第一列转换为list

    print({"1": df.iloc[:,0].tolist()})
    

    最简单的解决方案是只解析第一列,然后使用iloc

    df = pd.read_excel('test.xls', 
                       parse_cols=0)
    
    print({"1": df.iloc[:206,0].astype(str).tolist()})
    

    【讨论】:

    • 我看到了错误,所以我添加了另一个更简单的解决方案,请检查它。
    • 是的,这真是个好主意!每个邮政编码之间只缺少“ ”:“1”:[“1123”,“1165”,“1143”,“1091”,“n”]。你有什么想法 ?这很重要,因为我将这个表单用于 Javascript
    • 是的,请稍等。
    • 我编辑答案,您只需通过astype(str) 转换为str
    • 非常感谢!
    【解决方案2】:

    我不熟悉excel,但是pandas可以轻松解决这个问题。

    首先,将excel读取到DataFrame

    import pandas as pd
    df = pd.read_excel(filename)
    

    然后,随心所欲地打印

    print({"1": list(df.iloc[0:N]['A'])})
    

    其中N 是您要打印的数量。这就对了。如果列表不是字符串列表,则需要将 int 转换为字符串。

    另外还有很多参数可以控制excelread_excel的加载部分,大家可以通过文档来设置合适的参数。

    希望这对你有帮助。

    【讨论】:

    • 我有一个大错误说:文件“pandas\index.pyx”,第 137 行,在 pandas.index.IndexEngine.get_loc (pandas\index.c:4066) 文件“pandas\index .pyx",第 161 行,在 pandas.index.IndexEngine.get_loc (pandas\index.c:3995) KeyError: 'A'
    • 检查您的列名df.columns。确保使用正确的名称。实际上,您也可以使用 df.iloc[0:N][1] 对 rows=[0:N] 和 cols=[1] 的数据帧进行切片。此外,查看 pandas 的文档,了解如何在数据框 Indexing and Selecting data 中选择行和列。
    猜你喜欢
    • 2012-08-07
    • 2013-10-12
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2016-04-23
    • 2016-06-12
    相关资源
    最近更新 更多