gpt4 book ai didi

python - 如何将 Modin pandas 数据框附加到其他数据框?

转载 作者:行者123 更新时间:2023-12-01 00:50:31 32 4
gpt4 key购买 nike

我正在对每个文件大约 6GB 的大文件进行计算,并遇到了 Modin pandas,我听说它比 pandas 进行了优化。

我需要分块读取 CSV 文件并对其执行计算,然后将其附加到一个大的 dataframe 中,然后再次将大 dataframe 转换为 CSV 文件。

这对于Pandas来说工作得非常好。但处理即使是小文件也会花费太多时间。我什至无法想象 6GB 文件的情况。

但是,当我尝试使用 modin pandas 执行相同的操作时,它无法将数据帧附加到我想要转换为 csv 文件的大数据帧。

任何人都可以提出任何替代方案或解决方案吗?

Python - 3.6
Pandas - 0.24.2
Modin Pandas - 0.5.2

代码。

import modin.pandas as pd

def calculate_visit_prioritization(df):
# calculations here
return df

def get_all_data():
big_df = pd.DataFrame()
for df in pd.read_csv('./samp.csv', chunksize=50):
big_df = big_df.append(calculate_visit_prioritization(df))
big_df.to_csv('samps3.csv', index=False)

def main():
get_all_data()

if __name__ == '__main__':
main()

使用 Modin pandas 附加数据帧时出错。

UserWarning: DataFrame.append for empty DataFrame defaulting to pandas implementation.

File "/home/tony/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py", line 289, in __init__ raise TypeError(msg)

TypeError: cannot concatenate object of type ""; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

我经历过这个link据说 pandas 的 .append() 函数部分 ( P ) 在 Modin 中实现。

最佳答案

Modin 的 USP 是 pandas 和 modin pandas 之间的唯一区别是 import 语句。要连接多个 DataFrame,请使用单个 pd.concat 调用,而不是 N append 调用以获得更好的性能。

df_list = []
for df in pd.read_csv('./samp.csv', chunksize=50):
df_list.append(calculate_visit_prioritization(df))

big_df = pd.concat(df_list, ignore_index=True)
big_df.to_csv('samps3.csv', index=False)

这也应该可以优雅地处理空的子 DataFrame。

关于python - 如何将 Modin pandas 数据框附加到其他数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56610919/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com