簡體   English   中英

使用Pandas將數據編程為CSV

[英]Programming Data to CSV using Pandas

我正在嘗試制作CSV,Excel,但我遵循了在線幫助,但它似乎無法正常工作,並且會彈出KeyError:“ Teflon”。 有什么想法嗎? 這是我追隨援助的援助

import pandas as pd
import os

def sort_data_frame_by_Teflon_column(dataframe):
     dataframe = dataframe.sort_values(by= ['Teflon'])
def sort_data_frame_by_LacticAcid_column(dataframe):
    dataframe = dataframe.sort_values(by= ['Lactic Acid'])
def sort_data_frame_by_ExperimentalWeight_column(dataframe):
    dataframe = dataframe.sort_values(by= ['Experimental Weight'])
def sort_data_frame_by_Ratio_column(dataframe):
    dataframe = dataframe.sort_values(by= ['Ratio of Lactic Acid to Experimental Weight'])
def get_data_in_Teflon(dataframe):
    dataframe = dataframe.loc[dataframe['Teflon']]
    dataframe = dataframe.sort_values(by=['Teflon'])
def get_data_in_LacticAcid(dataframe):
   dataframe = dataframe.loc[dataframe['Lactic Acid']]
   dataframe = dataframe.sort_values(by= ['Lactic Acid'])
def get_data_in_ExperimentalWeight(dataframe):
   dataframe = dataframe.loc[dataframe['Experimental Weight']]
   dataframe = dataframe.sort_values(by= ['Experimental Weight'])
def get_data_in_Ratio(dataframe):
   dataframe = dataframe.loc[dataframe['Ratio of Lactic Acid to Experimental Weight']]
   dataframe = dataframe.sort_values(by= ['Ratio of Lactic Acid to Experimental Weight'])
   path = 'C:\\Users\\Light_Wisdom\\Documents\\Spyder\\Mass-TeflonLacticAcidRatio.csv'
 #output_file = open(path,'x')
 #text = input("Input Data: ")
 #text.replace('\\n', '\n')
 #output_file.write(text. replace('\\', ''))
 #output_file.close()
 csv_file = 'C:\\Users\\Light_Wisdom\\Documents\\Spyder\\Mass-TeflonLacticAcidRatio.csv'
 dataframe = pd.read_csv(csv_file)
 dataframe = dataframe.set_index('Teflon')
 sort_data_frame_by_Teflon_column(dataframe)
 sort_data_frame_by_LacticAcid_column(dataframe)
 sort_data_frame_by_ExperimentalWeight_column(dataframe)
 sort_data_frame_by_Ratio_column(dataframe)
 get_data_in_Teflon(dataframe)
 get_data_in_LacticAcid(dataframe)
 get_data_in_ExperimentalWeight(dataframe)
 get_data_in_Ratio(dataframe)
 write_to_csv_file_by_pandas("C:\\images\\Trial1.csv", dataframe)
 write_to_excel_file_by_pandas("C:\\images\\Trial1.xlsx", dataframe)
 #data_frame.to_csv(csv_file_path)
 #excel_writer = pd.ExcelWriter(excel_file_path, engine = 'xlsxwriter')
 #excel_writer.save()

這是CSV:

Teflon,Lactic Acid,Experimental Weight,Ratio of Lactic Acid to Experimental Weight
1.973,.2201,1.56,.14
2.05,.15,.93,.16
1.76,.44,1.56,.28

編輯新問題19/7/24

我正在嘗試使用函數自動執行答案,但是遇到此錯誤時我正在嘗試。

def get_Data():
check = 'No'
while(check == 'Yes'):
    row_name = input("What is the row number? ")
    row_name = []
    data = float(input("Teflon, Lactic_Acid, Expt_Wt, LacticAcid_to_Expt1_Wt: "))
    dataframe = []
    check = input("Add another row? ")
    return row_name,data, dataframe
 def row_inputter(row_name,data,dataframe):
    row_name.append(data)
    dataframe.append(row_name)
    return row_name, dataframe

  # Define your data
  #row1 = [ 1.973, .2201, 1.56, .14]
  #row2 = [2.05, .15, .93, .16]
  #row3 = [1.76, .44, 1.56, .28]
 row_name,data, dataframe = get_Data()
 row, df = row_inputter()

您已經通過以下方式將Teflon設置為索引

 dataframe = dataframe.set_index('Teflon')

您的dataframe不再包含該列。 您的職能

sort_data_frame_by_Teflon_column()

將失敗,並通過該錯誤。

另外,其他功能如下:

def get_data_in_LacticAcid(dataframe):
   dataframe = dataframe.loc[dataframe['Lactic Acid']]
   dataframe = dataframe.sort_values(by= ['Lactic Acid'])

由於第一行,可能會失敗或將dataframe變為空。 您到底想用這些功能實現什么?

我可以告訴你你是熊貓的初學者。 不用擔心...這是您進行前幾個操作的方式。

您引用的AID是以老式的方式處理的,並且沒有利用已經創建的許多優秀工具來處理熊貓和Python的CSV和XLSX數據。

XLSXWriter是一個神話般的庫,可以輕松讀取和寫入Pandas數據。
[XLXSwriter.com] [1] https://xlsxwriter.readthedocs.io/working_with_pandas.html

# Do necessary imports
import pandas as pd
import os
import xlsxwriter

# Define your data
expt_data = ["Teflon", "Lactic_Acid", "Expt_Wt", "LacticAcid_to_Exptl_Wt"]
row1 = [ 1.973, .2201, 1.56, .14]
row2 = [2.05, .15, .93, .16]
row3 = [1.76, .44, 1.56, .28]

# Create dataframe using constructor method
df1 = pd.DataFrame([row1, row2, row3], columns=expt_data)

# Output dataframe
df1

# Sort dataframe by Teflon column values and output it
Teflon_Sorted = df1.sort_values(by=["Teflon"])
Teflon_Sorted

# Sort dataframe by Lactic_Acid column values and output it
Lactic_Acid_Sorted = df1.sort_values(by=["Lactic_Acid"])
Lactic_Acid_Sorted

# Sort dataframe by Expt_Wt column values and output it
Expt_Wt_sorted = df1.sort_values(by=["Expt_Wt"])
Expt_Wt_sorted

# Sort dataframe by Expt_Wt column values and output it
LacticAcid_to_Exptl_Wt_sorted = df1.sort_values(by=["LacticAcid_to_Exptl_Wt"])
LacticAcid_to_Exptl_Wt_sorted

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter("Trial1.xlsx", engine='xlsxwriter')

# Convert all dataframes to XlsxWriter Excel objects and then write each to a different worksheet in the workbook created above named "Trial1.xlsx".
Teflon_Sorted.to_excel(writer, sheet_name='Teflon_Sorted')
Lactic_Acid_Sorted.to_excel(writer, sheet_name='Lactic_Acid_Sorted')
Expt_Wt_sorted.to_excel(writer, sheet_name='Expt_Wt_sorted')
LacticAcid_to_Exptl_Wt_sorted.to_excel(writer, sheet_name='LacticAcid_to_Exptl_Wt_sorted')

# Close the Pandas Excel writer and output the Excel file.
writer.save()

# now go to your current directory in your file system where the Jupyter Notebook or Python file is executing and find your file. 

# Type !dir in Jupyter cell to list current directory on MS-Windows
!dir 

[XLXSwriter.com] [1] https://xlsxwriter.readthedocs.io/working_with_pandas.html

抱歉,這不是一個完整的應用程序,可以滿足您的所有需求,但是我的時間有限。 我向您展示了如何寫出最終結果。 我把它留作學習練習,讓您學習如何讀取數據文件,而不是在Python程序中內聯“即時”創建它。

我的建議是將XLXSwriter用於與Excel或Pandas相關的所有內容。 遵循XLSXwriter網站上的精彩教程。 XLSXwriter可能是目前最好,最簡單的Python-Pandas-Excel工具箱。 它以編程方式完成某人通常必須手動(“交互”)進行的所有操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM