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

标签 python pandas dataframe pandasql modin

我正在对每个文件大约 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/

相关文章:

python - 尽管我安装了最新版本的flask-marshmallow,但从flask-marshmallow 访问 `SQLAlchemyAutoSchema` 时出现问题

datetime - 如何转换 Pandas 系列值的时区

python - Python机器学习中只有标签为真时如何计算特征百分比?

python - 按 "space"pandas 拆分几列

python - 从时间序列生成日期特征

python - 使用 Python simplejson 返回预生成的 json

python - 如何在元组列表上使用 reduce 函数?

r - 为什么mean函数不能与ave函数一起使用

python - pyspark - 使用 OR 条件连接

python - 在 Python 中使用可能不存在的参数格式化字符串