[英]Is it possibe to change similar libraries (Data Analysis) in Python within the same code?
我使用modin库进行多处理。 虽然该库非常适合更快的处理,但它在merge
时失败,我想在代码之间恢复为默认的 pandas。
我理解根据 PEP 8:E402 约定,导入应该在代码顶部声明一次,但是我的情况需要另外声明。
import pandas as pd
import modin.pandas as mpd
import os
import ray
ray.init()
os.environ["MODIN_ENGINE"] = "ray"
df = mpd.read_csv()
do stuff
然后我想在相同的代码中恢复到默认的 pandas 但是我将如何在pandas
中执行以下操作,因为在下面的行中似乎没有一个明确的方法可以从pd
和mpd
切换,不幸的是 modin 似乎优先熊猫。
df = df.loc[:, df.columns.intersection(['col1', 'col2'])]
df = df.drop_duplicates()
df = df.sort_values(['col1', 'col2'], ascending=[True, True])
可能吗? 如果是,如何?
您可以简单地执行以下操作:
import modin.pandas as mpd
import pandas as pd
这样,您就可以在内存中同时拥有 modin 和原始 pandas,并且可以根据需要有效地切换。
由于许多人已经发布了答案,但是在这种特殊情况下,@Nin17 和 Modin GitHub 的评论指出,从 Modin 转换为 Pandas 以对一些操作(如df.merge
)进行单核处理,您可以使用
import pandas as pd
import modin.pandas as mpd
import os
import ray
ray.init()
os.environ["MODIN_ENGINE"] = "ray"
df_modin = mpd.read_csv() #reading dataframe into Modin for parallel processing
df_pandas = df_modin._to_pandas() #converting Modin Dataframe into pandas for single core processing
如果您想将数据帧重新转换为 modin 数据帧以进行并行处理
df_modin = mpd.DataFrame(df_pandas)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.