[英]How to write Pandas Dataframe Horizontally in to Excel sheet from python openpyxl (elements in same row, consecutive columns)
[英]Write Dataframe row to excel sheet using Pandas
如何將返回的行從 dataframe 保存到 excel 表中?
故事:我正在處理包含加拿大郵政編碼的大型 txt 文件(1.7M 行)。 我創建了一個 dataframe,並將我需要的值提取到其中。 dataframe 的一列是省 id (df['PID'])
。 我創建了在該 PID 列中找到的唯一值的列表,並在新的 excel 電子表格中成功創建了 (13) 個工作表,每個工作表都以唯一的 PID 命名。
問題:每張表只包含標題,而不包含行的值。
我無法將匹配的行寫入工作表。 這是我的代碼:
import pandas as pd
# parse text file into dataframe
path = 'the_file.txt'
df = pd.read_csv(path, sep='\t', header=None, names=['ORIG', 'PID','PCODE'], encoding='iso-8859-1')
# extract characters to fill values
df['ORIG'] = df['ORIG']
df['PID'] = df['ORIG'].str[11:13].astype(int)
df['PCODE'] = df['ORIG'].str[:6]
# create list of unique province ID's
prov_ids = df['PID'].unique().tolist()
prov_ids_string = map(str, prov_ids)
# create new excel file
writer = pd.ExcelWriter('CanData.xlsx', engine='xlsxwriter')
for id in prov_ids_string:
mydf = df.loc[df.PID==id]
# NEED TO WRITE VALUES FROM ROW INTO SHEET HERE*
mydf.to_excel(writer, sheet_name=id)
writer.save()
我知道寫作應該發生在哪里,但我沒有得到正確的結果。 如何僅將具有匹配 PID 的行寫入各自的工作表?
謝謝
以下應該有效:
import pandas as pd
import xlsxwriter
# parse text file into dataframe
# extract characters to fill values
df['ORIG'] = df['ORIG']
df['PID'] = df['ORIG'].str[11:13].astype(int)
df['PCODE'] = df['ORIG'].str[:6]
# create list of unique province ID's
prov_ids = df['PID'].unique().tolist()
#prov_ids_string = map(str, prov_ids)
# create new excel file
writer = pd.ExcelWriter('./CanData.xlsx', engine='xlsxwriter')
for idx in prov_ids:
mydf = df.loc[df.PID==idx]
# NEED TO WRITE VALUES FROM ROW INTO SHEET HERE*
mydf.to_excel(writer, sheet_name=str(idx))
writer.save()
例如數據:
df = pd.DataFrame()
df['ORIG'] = ['aaaaaa111111111111111111111',
'bbbbbb2222222222222222222222']
df['ORIG'] = df['ORIG']
df['PID'] = df['ORIG'].str[11:13].astype(int)
df['PCODE'] = df['ORIG'].str[:6]
print(df)
氪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.