首页 > 解决方案 > 如何使用 python 从列表中读取所需的值并将其存储在 csv 中?

问题描述

我有一个列表格式的回复。我必须阅读列表并仅将所需值存储在 CSV 文件中的“;”中 分隔值。

 row = "[('Employee', 'Shift', 'IT', '5:15AM', 'Server', 'Manager', 'empemail@cmp.com'),('Employee', 'Shift', 'IT', '6:15AM', 'Server', 'Manager', 'empemail@cmp.com'),('Employee', 'Shift', 'CALL CENTER', '7:15AM', 'Server', 'Manager', 'empemail@cmp.com'),('Employee', 'Shift', 'CALL CENTER', '8:15AM', 'Server', 'Manager', 'empemail@cmp.com')]"

现在我需要以以下预期 格式将列表存储在 CSV 文件中。

param_Name,Param_Value
p_Name,Employee
p_operationType,IT;IT;CALL CENTER;CALL CENTER
p_Time,5:15 AM;6:15 AM;7:15 AM;8:15 AM
p_avaiablity,Daily
p_email,empemail@cmp.com

我正在尝试使用熊猫。

 import csv
 import pandas as pd
 df = pd.DataFrame(data=row).T
 df.to_csv('csvfile.csv',sep=';',index=False,header=False)
 print(df)
 for item in df:
    print(item) 
    #Stuck on how to proceed further...

使用此代码,我得到一个 csv 文件

param_Name,Param_Value
p_name,Employee;Employee;Employee;Employee
p_avaiablity,Daily;Daily;Daily;Daily

如何迭代列表并仅获取所需的值并按预期​​格式存储?

标签: pythonpandaslistcsv

解决方案


希望这可以帮助

import pandas as pd

row = [('Employee', 'Shift', 'IT', '5:15AM', 'Server', 'Manager', 'empemail@cmp.com'),('Employee', 'Shift', 'IT', '6:15AM', 'Server', 'Manager', 'empemail@cmp.com'),('Employee', 'Shift', 'CALL CENTER', '7:15AM', 'Server', 'Manager', 'empemail@cmp.com'),('Employee', 'Shift', 'CALL CENTER', '8:15AM', 'Server', 'Manager', 'empemail@cmp.com')]

# use dataframe constructor properly and name your columns
cols = ['Employee', 'Dont_know_what_this_is', 'department', 'time', 'location', 'status', 'email']
df = pd.DataFrame.from_records(row, columns=cols)

for index, row in df.iterrows():
    # do what you want with your data
    print(row)

# or use 'loc' function to get specific columns
df = df.loc[df.department == 'IT']
print(df)
# then export your csv
df.to_csv('csvfile.csv',sep=';',index=False,header=False)

输出:

    Employee Dont_know_what_this_is   department    time location   status             email
0  Employee                  Shift           IT  5:15AM   Server  Manager  empemail@cmp.com
1  Employee                  Shift           IT  6:15AM   Server  Manager  empemail@cmp.com
2  Employee                  Shift  CALL CENTER  7:15AM   Server  Manager  empemail@cmp.com
3  Employee                  Shift  CALL CENTER  8:15AM   Server  Manager  empemail@cmp.com

定位后:

Employee Dont_know_what_this_is department    time location   status             email
0  Employee                  Shift         IT  5:15AM   Server  Manager  empemail@cmp.com
1  Employee                  Shift         IT  6:15AM   Server  Manager  empemail@cmp.com

推荐阅读