【问题标题】:How to take printed output of a function and put it in a DataFrame如何获取函数的打印输出并将其放入 DataFrame
【发布时间】:2020-09-11 21:37:50
【问题描述】:

我有一个函数可以从网站中提取一行文本并将该文本递归地添加到url。我的问题是,当它打印出所需的输出时,我想将该输出放入 Pandas DataFrame 中,我可以在其中清理数据并进行一些分析。

到目前为止,这是我的代码:

from urllib import request

def get_chunk(chunk, url='https://www.uchicago.computer/api.php?file='):
    with request.urlopen(url + chunk) as f:
        return f.read().decode('UTF-8').strip()

if __name__ == '__main__':
    chunk = 'insertsixtyfourrandomcharactershereabcdefghijklmnopqrstuvyxyz123'
    while chunk[-3:] != "END":
        chunk = get_chunk(chunk[-64:])
        print(chunk)

输出是这样打印的:

{"Last Name": "DOE", "First Name": "JOHN", "Job Title": "EXEC SECRETARY/OFFICE MGR", "2020 Annual Salary": "100,000.00"}
RTBFRequest: John Doe
{"Last Name": "JANE", "First Name": "MARY", "Job Title": "CHIEF OF STAFF", "2020 Annual Salary": "11,111.11"}
....

但我想将输出返回到这样的数据帧中,其中每一行输出都是它自己的行。

|Entry                  |         
|-----------------------|
|"Last Name": "DOE"...  |
|"RTBFRequest: John"... |
|"Last Name": "JANE"... |
|....                   |

我尝试定义一个空列表,将 chunk 附加到该列表,然后返回该列表,以便我可以将输出添加到 DataFrame 但它只会返回输出的一小部分。

任何帮助将不胜感激!

【问题讨论】:

  • df = pd.DataFrame({'Entry':chunk}) 怎么样?
  • 我也试过这个。只返回一小部分输出

标签: python pandas function dataframe urllib


【解决方案1】:

这应该可行:

import numpy as np
import pandas as pd
data = [{"Last Name": "DOE", "First Name": "JOHN", "Job Title": "EXEC SECRETARY/OFFICE MGR", "2020 Annual Salary": "100,000.00"}, {"Last Name": "JANE", "First Name": "MARY", "Job Title": "CHIEF OF STAFF", "2020 Annual Salary": "11,111.11"}]
df = pd.Series(np.array(data)).to_frame('Entry')

结果

                                               Entry
0  {'Last Name': 'DOE', 'First Name': 'JOHN', 'Jo...
1  {'Last Name': 'JANE', 'First Name': 'MARY', 'J...

【讨论】:

  • 我收到错误消息:Exception: Data must be 1-dimensional
猜你喜欢
  • 1970-01-01
  • 2018-07-29
  • 2020-07-30
  • 2023-03-19
  • 2019-07-17
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 2021-07-01
相关资源
最近更新 更多