Python 使用panda dataframe将文本文件从网站导入powerbi
我需要导入使用python请求导入的csv文本文件。我的代码可以使用自己的API密钥从网站导入数据。但要将其导入POwerBI,必须将其转换为数据帧。但是我不能知道怎么做。任何帮助都将不胜感激Python 使用panda dataframe将文本文件从网站导入powerbi,python,python-3.x,powerbi,Python,Python 3.x,Powerbi,我需要导入使用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
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)
因此,我了解输入数据具有以下结构:
['A', 'B', 'C', 'D']
['DEV', 'J', 'BBBB', '2019-08-28']
['5R', 'J', 'EMAIL', '2019-05-21']
您需要一个脚本来转换pandas数据帧中的数据,以便使用Power Bi上载。作为第一步,您必须将此文本数据转换为仅包含以逗号分隔的值的行的文本,使其可读,如:
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
注:我认为您必须在末尾添加输入_df
,以便Power Bi识别它
就你而言,我认为
response = requests.get('https://my url websaite', headers=headers)
具有与原始输入数据相同的结构能否在列表的前几行打印出响应,我们可以从中进行分析。根据一些观察,csv阅读器希望从文件而不是字符串对象读取,并且需要定义一个分隔符(通常是逗号)。谢谢Bruno。打印的输出文件按[]组合在一起,加上我在文本中还有一些逗号,显示为“Y,Weekly”,其余的数据像“YR”一样分开,我如何将其放入数据框中以便导入PowerBi还有排除标题行的方法吗,由于我不需要导入该数据,我的主要问题是要将其导入到PowerBI,它说它必须在数据帧中。我找不到将字符串导入数据帧的方法。有A列可以更新问题并给我几行回复,这样我就可以看到数据的结构…我在顶部的文本输出示例中添加了一个链接