Advertisement

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)

全部评论 (0)

还没有任何评论哟~