繁体中文
夜间模式 切换到窄版

哥谭

 找回密码
 开始流浪*
搜索
热搜: 韦恩 国男 bbuh
查看: 223|回复: 15
收起左侧

Python小白來了

[复制链接]



现金: $106600

名声: 0

称号:

发表于 2024-6-3 11:29:14 手机 | 显示全部楼层 |阅读模式
不想有大糞就來發些精英內容(笑)
場景:有四百多萬條數據要做分析,要用幾個Excel導成dataframe再合併,搞一次就要十分鐘以上,太折磨了。
有沒有快些的導入方法,或者導入之後能保存,這樣方便作後續微調,碩博論壇ball ball hot

已有 0 人打赏作者

布鲁斯韦恩只是蝙蝠侠的一个面具而已。



现金: $106600

名声: 0

称号:

 楼主| 发表于 2024-6-5 08:42:32 | 显示全部楼层
後續:pd.read_csv解君愁
来自 11塔 2024-6-5 08:42:32 回复 收起回复
发帖际遇】: Jarryftno学论文发表,获得noone奖学金15 金币. 幸运榜 / 衰神榜
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报



现金: $29763

名声: 338

称号: 蓝领

发表于 2024-6-3 11:56:44 手机 | 显示全部楼层
Power BI符不符合需求
2 2024-6-3 11:56:44 收起回复
回复 举报
需要動態運算
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报

发表于 2024-6-3 11:56:59 | 显示全部楼层
要處理大量數據並加速導入和分析過程,可以考慮以下幾種方法:

1. **使用更高效的數據格式**:
   - **CSV**:比Excel更快,可以直接使用`pandas`的`read_csv`方法導入。
   - **HDF5**:適合存儲大規模數據,並且支持部分讀取。
   - **Parquet**:專為大數據設計的格式,讀寫速度快。

2. **分批讀取和處理數據**:
   - 可以將數據分成較小的部分,逐步讀取和處理。

3. **儲存中間結果**:
   - 將處理後的數據儲存為中間結果,方便後續微調。
   - 可以使用Pandas的`to_pickle`方法將DataFrame儲存為二進制文件,之後可以快速讀取。

下面是一個示例代碼,展示如何使用上述方法加速數據處理:

```python
import pandas as pd

# 假設有多個Excel文件需要導入
file_list = ['data1.xlsx', 'data2.xlsx', 'data3.xlsx']  # 添加所有文件名稱

# 使用read_csv或read_excel讀取數據
df_list = [pd.read_excel(file) for file in file_list]

# 合併所有DataFrame
combined_df = pd.concat(df_list, ignore_index=True)

# 儲存為HDF5格式
combined_df.to_hdf('combined_data.h5', key='df', mode='w')

# 儲存為Parquet格式
combined_df.to_parquet('combined_data.parquet')

# 儲存為pickle格式
combined_df.to_pickle('combined_data.pkl')

# 讀取儲存的文件
df_from_hdf = pd.read_hdf('combined_data.h5', key='df')
df_from_parquet = pd.read_parquet('combined_data.parquet')
df_from_pickle = pd.read_pickle('combined_data.pkl')

# 檢查數據
print(df_from_hdf.head())
print(df_from_parquet.head())
print(df_from_pickle.head())
```

這樣可以加速數據讀取和處理過程,並且方便後續進行微調。你可以根據需要選擇合適的數據格式來儲存中間結果。
3 2024-6-3 11:56:59 回复 收起回复
发帖际遇】: godish融合解除5换1被对方手坑橄榄,失去3 金币. 幸运榜 / 衰神榜
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报



现金: $62608

名声: 999

称号: 白领

发表于 2024-6-3 11:59:10 手机 | 显示全部楼层
access?
4 2024-6-3 11:59:10 收起回复
回复 举报
聽說很強大但之前沒動力學,類似powerbi嗎?
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报

发表于 2024-6-3 12:18:22 手机 | 显示全部楼层
十几分钟算快的了吧
5 2024-6-3 12:18:22 回复 收起回复
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报



现金: $1800000

名声: 20

称号: 游民

发表于 2024-6-3 13:13:33 手机 | 显示全部楼层
很久以前用过feather,现在应该有类似的新技术
6 2024-6-3 13:13:33 回复 收起回复
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报

发表于 2024-6-3 13:35:35 | 显示全部楼层
分块并发读入
7 2024-6-3 13:35:35 收起回复
回复 举报
能卜能展開一哈
回复 举报
python的并发可以用来解决这类I/O性能瓶颈。就是把文件按照一定规则分成几个部分,使用多线程或者多进程库并发读入,之后在合并(甚至都不需要合并,reduce这种情况还蛮有用的)。你可以自己实现一个任务调度器避免线程等待。

没有其他瓶颈还是对性能优化蛮多的。
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报

发表于 2024-6-5 05:26:21 | 显示全部楼层
你问题应该是数据格式的读取吧,我不知道能不能pandas直接读excel,但excel应该可以转csv然后pandas读csv?
8 2024-6-5 05:26:21 回复 收起回复
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报



现金: $100

名声: 0

称号:

发表于 2024-6-5 06:36:58 手机 | 显示全部楼层
excel应该可以转csv然后pandas读csv?
9 2024-6-5 06:36:58 回复 收起回复
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报

发表于 2024-6-5 07:22:25 手机 | 显示全部楼层
搞数据库吧 excel太慢了
10 2024-6-5 07:22:25 回复 收起回复
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报



现金: $7591

名声: 0

称号:

发表于 2024-6-5 15:28:45 | 显示全部楼层
csv一把梭
12 2024-6-5 15:28:45 回复 收起回复
发帖际遇】: qazw2424经no老师点拨,领悟了自己的费拉本质,付出学费11 金币 幸运榜 / 衰神榜
布鲁斯韦恩只是蝙蝠侠的一个面具而已。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 开始流浪*

本版积分规则

手机版|小黑屋|Gotham City

GMT+8, 2025-7-27 19:26

快速回复 返回顶部 返回列表