Python日常用法—将列表信息写入到csv文件、列表中的元素直接更改

Python日常用法—将列表信息写入到csv文件

1.模板

# 编写数据
import csv

data_list = [{
    
    '皇马球员': 'C罗', '号码': '7', '国籍': '葡萄牙'},
{
    
    '皇马球员': '托尼··克罗斯', '号码': '8', '国籍': '德国'},
{
    
    '皇马球员': '马塞洛', '号码': '12', '国籍': '巴西'},
{
    
    '皇马球员': '卡里姆·本泽马', '号码': '9', '国籍': '法国'},]
#  1.创建csv文件对象,encoding='utf-8'是设置编码格式,newline=''为了防止空行
f = open('hala_madrid.csv', 'w', encoding='utf-8')
#  2.基于文件对象构建csv写入对象
csv_write = csv.writer(f)
#  3.构建列表头
csv_write.writerow(['皇马球员', '号码', '国籍'])
for data in data_list:
    #  4.写入csv文件
    csv_write.writerow([data['皇马球员'], data['号码'], data['国籍']])

在这里插入图片描述

2.实例

import pandas as pd
import numpy as np
from collections import Counter
import csv
import pandas as pd

cloumn_names = []  ## 所有列的名称(首行)
all_cloumn_dict = []  ## 所有的字典 及 次数
all_counter = []  ## 所有的填充率
all_cloumn_value = []  ## 方便后续进行数据写入

# 读取csv文件,pandas会将CSV数据的第一行作为表头
data = pd.read_csv("model_jy_1.csv", header=None)
# print("表格内容:")
# print("1111111",data)

for i in data:
    cloumn_names.append(i)
# print("首行:",cloumn_names)

all_data = []
for i in cloumn_names:

    nan_count = 0  ## 统计 缺失值 的情况

    print("********************* 第", cloumn_names.index(i) + 1, "列情况分布********************")

    col_1 = data[i]  # col_1 = data["ID"]  #获取一列,用一维数据
    data_1 = np.array(col_1)
    print("列名:", data_1[0])
    print("列值:", data_1[1:])

    ## 离散型取哑变量填充

    data_2 = []
    if data_1[0] == "C":
        data_2 = ['99' if str(i) == 'nan' else i for i in list(data_1)]  ## 有则替换,无则使用原先的数值

    ## 连续型取均值填充
    if data_1[0] == "I":
        temp = []
        for j in list(data_1[1:]):
            if str(j) != "nan":
                temp.append(float(j))
        mean_1 = round(np.mean(temp), 4)

        data_2 = [str(mean_1) if str(i) == 'nan' else i for i in list(data_1)]

    all_data.append(data_2)

print(all_data)

## 字典中的key值即为csv中列名
dataframe = pd.DataFrame({
    
    'M 0 ': all_data[ 0 ][1:] ,
'M 1 ': all_data[ 1 ][1:] ,
'M 2 ': all_data[ 2 ][1:] ,
'M 3 ': all_data[ 3 ][1:] ,
'M 4 ': all_data[ 4 ][1:] ,
'M 5 ': all_data[ 5 ][1:] , })
# 将DataFrame存储为csv
dataframe.to_csv(r"./model_jy_1_填充.csv", mode="a", index=False)

3.python 列表中的元素直接更改、替换

aaa=['马塞洛','阿扎尔','佩佩','拉莫斯']
bbb=['C罗' if i =='阿扎尔' else i for i in aaa]
bbb

结果:
['马塞洛','C罗','佩佩','拉莫斯']

猜你喜欢

转载自blog.csdn.net/crist_meng/article/details/129094299
今日推荐