使用熊猫数据框将文本文件从网站导入到Powerbi

时间:2019-09-22 14:52:54

标签: python python-3.x powerbi

TEXT OUTPUT EXAMPLE我需要导入使用python请求导入的csv文本文件。我的代码可以使用我自己的API密钥从网站导入数据。但是要将其导入POwerBI,必须将其转换为数据框。但是我不能锻炼该怎么做。任何帮助将不胜感激。

response = requests.get('https://my url websaite', headers=headers)
wrapper = csv.reader(response.text.strip().split('\n'))
for record in wrapper:
    A = str(record[0])
    B = str(record[1])
    C = str(record[2])
    D = str(record[3])
    E = str(record[4])
    F = str(record[5])
    G = str(record[6])
    H = str(record[7])
    I = str(record[8])
    J = str(record[9])
    K = str(record[10])
    L = str(record[11])
    M = str(record[12])
    N = str(record[13])
    O = str(record[14])
    P = str(record[15])
    Q = str(record[16])
    R = str(record[17])
    S = str(record[18])
    T = str(record[19])
    U = str(record[20])
    V = str(record[21])
    W = str(record[22])



    print (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W)

1 个答案:

答案 0 :(得分:0)

所以我了解输入数据具有以下结构:

['A', 'B', 'C', 'D']
['DEV', 'J', 'BBBB', '2019-08-28']
['5R', 'J', 'EMAIL', '2019-05-21']

,并且您希望脚本将大熊猫数据框中的数据转换为Power Bi。
第一步,您必须通过将文本数据转换为仅包含带有逗号分隔的值的行的文本来使该文本数据具有csv可读性:

A, B, C, D
DEV, J, BBBB, 2019-08-28
5R, J, EMAIL, 2019-05-21

然后以csv.reader的形式读取IO对象(类似于文件),而不仅仅是读取文本字符串,您需要使用io.StringIO将文本更改为IO对象。一旦读取了所有(非空)行,就可以轻松创建数据帧,从而假定第一行是标题。

脚本:

import io
import csv
import pandas as pd

raw_input_data = '''
['A', 'B', 'C', 'D']
['DEV', 'J', 'BBBB', '2019-08-28']
['5R', 'J', 'EMAIL', '2019-05-21']'''

# condition the input data to make it a readable csv
raw_input_data = raw_input_data.replace('[', '').replace(']', '').replace('\'', '')
raw_input_file = io.StringIO(raw_input_data)
csv_reader = csv.reader(raw_input_file, delimiter=',')

# append each non empty row to the list input_rows and convert to a 
# pandas dataframe, assume first row is the header
input_rows = []
for row in csv_reader:
    if row:
        input_rows.append(row)

input_df = pd.DataFrame(input_rows[1:], columns=input_rows[0])
print(input_df.head(10))
input_df

请注意,我相信您必须在末尾添加input_df才能使其被Power Bi识别

在你的情况下,我认为

response = requests.get('https://my url websaite', headers=headers)

具有与raw_input_data相同的结构。

相关问题