我正在对每个文件大约6GB的大文件执行计算,并遇到了我听说与 pandas 相比优化的Modin pandas。
我需要分块读取 CSV 文件并对其执行计算并将其附加到大数据帧并再次将大数据帧转换为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
对于默认为 pandas 实现的空 DataFrame。文件“/home/tony/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py”,第 289 行,在
__init__
raise TypeError(msg)TypeError:无法连接类型为“”的对象;只有 pd.Series、pd.DataFrame 和 pd.Panel(已弃用)obj 有效
我已经浏览了这个链接,据说熊猫的.append()
功能部分( P )在 Modin 中实现。