【pandas】数据清洗

1.读取文件

1.1安装库文件

pip install openpyxl
pip install xlrd

1.2加载excel到df

Index_col = 0 设置为使第一列索引

df = pd.read_excel('./data/sample.xlsx', index_col=None)

读取所有sheet

df_sheet_multi = pd.read_excel('问答.xlsx',  sheet_name=None, index_col=None, header=None)
# keys=[i for i in df_sheet_multi.keys()]
keys=list(df_sheet_multi)

读取指定sheet,按名称和按索引

df_sheet_multi['sheet2']
print(df_sheet_multi[list(df_sheet_multi)[0]])

2.读取指定列

sheet=df_sheet_multi['python面试']
columns=list(sheet.columns)
for i in columns:
    c=sheet[i]
    c=c.replace(np.nan, '')
    f_4=c[0:4].values

3.集合运算

s.add(1)   ###增加一个元素
s.update([5,2,3,6])  ###添加多个元素

s1 = {1,2,3}
s2 = {2,3,4}

print('交集:',s1.intersection(s2))
print('交集:',s1 & s2)   

print('并集',s1.union(s2))
print('并集',s1 | s2)

print('差集',s1.difference(s2))   ###s1 - (s1&s2)
print('差集',s2.difference(s1))  ###s2 - (s1&s2)

4.csv追加数据,读取数据

4.1

def write_csv():
    path  = "aa.csv"
    with open(path,'a+') as f:
        csv_write = csv.writer(f)
        data_row = ["1","2"]
        csv_write.writerow(data_row)
def read_csv():
    path = "aa.csv"
    with open(path,"rb") as f:
        csv_read = csv.reader(f)
        for line in csv_read:
            print line

读取指定列

sheet = pd.read_csv(path)
columns=list(sheet.columns)
for i in columns:
    c=sheet[i]
  
  # sheet[columns[i]].values
4.2两列表转df;一行行读取数据
from pandas.core.frame import DataFrame
a=[[1,2,3,4],[5,6,7,8]]#包含两个不同的子列表[1,2,3,4]和[5,6,7,8]
data=DataFrame(a)#这时候是以行为标准写入的
data=data.T
# print(data)
for index, row in data.iterrows():
    print(row.values[1])

5.字符串排除

if '业主' in '' or '手机号' in '' or '' in {} or '' in {}:
	continue
else:
	插入数据库

6.插入数据库

import pymysql

# 打开数据库连接
try:
    db = pymysql.connect(host='localhost', user='root', passwd='666666', port=3306, db='Mysql8')
    print('连接成功!')
except:
    print('something wrong!')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    print('数据插入成功!')
except:
    # 如果发生错误则回滚
    db.rollback()
    print('数据插入错误!')

# 关闭数据库连接
db.close()

import datetime
import jieba

import psycopg2

if __name__ == '__main__':
    conn = psycopg2.connect(
        database="book",
        user='postgres',
        password='123456',
        host='127.0.0.1',
        port='5432'
    )
    cursor = conn.cursor()
    cursor.execute('select title,id from library3 ;')

    mydata = cursor.fetchall()
    cursor.close()
    with open(r'./stopwords/hit_stopwords.txt', 'r', encoding='utf8') as f:
        stopword = set([i for i in f.read().split('\n')])
    cursor = conn.cursor()
    for i in mydata:
        # print(i[0])
        # print([j for j in jieba.cut_for_search(i[0]) if j.strip() and j.strip() not in stopword])
        l = [j for j in jieba.cut_for_search(i[0]) if j.strip() and j.strip() not in stopword]
        # l=[j for j in jieba.cut(i[0],cut_all=True) if j.strip() and j.strip() not in stopword]
        ll = [f'"{k}":{v + 1}' for v, k in enumerate(l)]
        # print(ll)
        query = (f"UPDATE library3 SET title_word= %s  WHERE id = %s;")
        cursor.execute(query, tuple([' '.join(ll), i[1]]))
    cursor.close()
    conn.commit()
    conn.close()
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas是一个强大的数据处理和分析工具,它提供了丰富的功能来进行数据清洗。下面是一些常用的数据清洗操作: 1. 数据导入:使用Pandas可以方便地从各种数据源导入数据,如CSV文件、Excel文件、数据库等。 2. 缺失值处理:使用Pandas可以很方便地处理数据中的缺失值。可以使用`isnull()`函数检测缺失值,使用`fillna()`函数填充缺失值,或者使用`dropna()`函数删除包含缺失值的行或列。 3. 重复值处理:使用Pandas可以轻松地检测和删除数据中的重复值。可以使用`duplicated()`函数检测重复值,使用`drop_duplicates()`函数删除重复值。 4. 数据类型转换:Pandas可以将数据转换为不同的数据类型,如字符串、日期时间等。可以使用`astype()`函数进行数据类型转换。 5. 数据排序:使用Pandas可以对数据进行排序。可以使用`sort_values()`函数按照指定的列进行排序,使用`sort_index()`函数按照索引进行排序。 6. 数据筛选:使用Pandas可以根据条件筛选数据。可以使用布尔索引、`query()`函数或者`loc[]`、`iloc[]`函数进行数据筛选。 7. 数据合并:Pandas提供了多种方法来合并数据,如`concat()`函数、`merge()`函数和`join()`函数。 8. 数据分组和聚合:使用Pandas可以对数据进行分组和聚合操作。可以使用`groupby()`函数进行分组,然后使用聚合函数(如`sum()`、`mean()`、`count()`等)进行聚合计算。 9. 数据重塑:Pandas提供了多种方法来重塑数据的形状,如`pivot()`函数、`melt()`函数和`stack()`函数。 以上是一些常用的Pandas数据清洗操作,当然还有很多其他功能和方法可以用于数据清洗。如果你有具体的问题或者需要更详细的介绍,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值