Python常用操作汇总—第1部分(持续更新)

初学python,主要是记录自己的学习经历,也方便日后查找使用。

欢迎在评论区留下你的问题,我们一起探讨,一起成长

第1部分:使用python读取文档类

    1.1 使用python读取excel文档
import pandas as pd

excel_file = '/文件路径/example.xlsx'     # 要读取的excel文件位置

sheet_name = 'Sheet1'  # 要读取的excel中的sheet名

df = pd.read_excel(excel_file, sheet_name = sheet_name)

print(df)
    1.2 使用python读取csv文档
import pandas as pd

df = pd.read_csv('/文件路径/example.csv')  # 要读取的csv文件位置

print(df)
    1.3 使用python读取txt文档并将其转化成DataFrame
import pandas as pd
import json
dict_list = []

with open('/Users/Desktop/test.txt', 'r', encoding='utf-8') as file:

    for line in file:

        try:

            dict_data = json.loads(line)

            dict_list.append(dict_data)

        except json.JSONDecodeError as e:

            print(f"Error reading line: {line}. Skipping...")

df = pd.DataFrame(dict_list)

# 继续将result中的键值对进行拆分成更细的列,如果没有对应的键值对,则为空
result_df = df['result'].apply(pd.Series)

df = pd.concat([df, result_df], axis=1)

print(df)
    1.4 随机抽样
#例:从df中随机抽取100条记录

import pandas as pd

df = pd.read_csv('/文件路径/example.csv')

# n参数指定要选择的记录数;
# random_state参数用于设置随机种子,以便每次运行代码时都能得到相同的随机抽样结果
df_sample = df.sample(n = 100, random_state = 42)

# 输出抽样结果
print(df_sample)

第2部分:使用python对文件进行特殊操作

    2.1 使用Python将电话号码转换为MD5加密形式

在Python中,可以使用哈希算法将电话号码转换为MD5加密形式,具体代码如下:

import hashlib

def md5_encrypt(phone_number):    
    # 将电话号码转换为字节串,并使用utf-8编码    
    phone_bytes = str(phone_number).encode('utf-8')    
    # 使用MD5哈希算法进行加密    
    md5_hash = hashlib.md5(phone_bytes)    
    # 获取加密后的结果    
    encrypted_phone = md5_hash.hexdigest()    
    return encrypted_phone

# 测试

phone = '1234567890'
encrypted_phone = md5_encrypt(phone)
print(encrypted_phone)
 2.2使用python把文件夹a中文件名带特定字段的文件转移到文件夹b里

具体代码如下:

import os

import shutil

# 定义文件夹a和文件夹b的路径
folder_a_path = '/path/to/folder_a'
folder_b_path = '/path/to/folder_b'

# 获取文件夹a中所有文件的列表
file_list = os.listdir(folder_a_path)

# 遍历文件列表,找出文件名带有"jianshu"的文件,并将其移动到文件夹b中
for file_name in file_list:    
    if 'jianshu' in file_name:        
    # 构建文件的完整路径        
        source_file = os.path.join(folder_a_path, file_name)        
        # 移动文件到文件夹b        
        shutil.move(source_file, folder_b_path)
    2.3 使用python批量修改文件名

    使用python,可以实现批量修改文件名,具体代码如下:

# 例:修改test文件夹中文件名,在原文件名后添加".jpg"
import os

directory = '/Users/Desktop/test/'

for filename in os.listdir(directory):

    # 旧文件路径

    old_path = os.path.join(directory, filename)

    if os.path.isfile(old_path):

        # 获取文件名和扩展名

        file_name, file_ext = os.path.splitext(filename)

        # 构建新文件名

        new_filename = file_name + ".jpg"

        # 构建新文件路径

        new_path = os.path.join(directory, new_filename)

        # 修改文件名

        os.rename(old_path, new_path)
    2.4 gps转成地址,已知经纬度信息,使用python将其转化为地址信息

    在python中,已知经纬度信息,可以将其转化为具体的地址信息,具体代码如下:

from geopy.geocoders

import Nominatim

# 创建一个Nominatim对象
geolocator = Nominatim(user_agent = "myGeocoder",timeout = 20)

# 定义经纬度坐标
latitude = 30.55462
longitude = 114.3396969

# 逆地理编码,将经纬度转换为地址信息
location = geolocator.reverse(f"{latitude}, {longitude}")

# 打印地址信息
print(location.address)

    如果文档中包含latitude和longitude,我们要利用这两个值转成地址后新增一列放在文档中,可使用如下代码:

import pandas as pd

from geopy.geocoders import Nominatim

df = pd.read_csv('/Users/Downloads/df_gps_latitude_longitude.csv')

# 创建一个Nominatim对象
geolocator = Nominatim(user_agent = "myGeocoder",timeout = 20)

# 定义一个函数,接收经度和纬度作为参数,并返回对应的地址信息
def get_address(latitude, longitude):
    try:
        location = geolocator.reverse(f"{latitude}, {longitude}")
        if location is not None:
            return location.address
        else:
            return 'Unknown Address'
    except Exception as e:
        print(f"Error: {e}")
        return 'Address Error'

# 使用apply方法调用函数,并将结果存储在新的"address"列中
df['address'] = df.apply(lambda row:get_address(row['latitude'], row['longitude']), axis = 1)

df.reset_index(drop = True, inplace = True)

print(df)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值