我有一个DataFrame,其中有40,000辆汽车和100个观测值。我试图找到用户选择的汽车与DataFrame的其余部分(其他汽车)之间的相关性。由于各种限制,我无法进行预先计算。以下代码有效,但是相对较慢...
import numpy as np
import pandas as pd
np.random.seed(0)
cars = [f'car_{i}' for i in range(40000)]
time_points = [f'time_{i}' for i in range(100)]
df = pd.DataFrame(np.random.random(size=[40000, 100]), columns=time_points, index=cars)
df_transposed = df.transpose()
# correlation between car_50 and all other cars
t = df_transposed.corrwith(df_transposed['car_50'])
我尝试了df_transposed.to_numpy()
和pd.np.corrcoef(df_transposed, rowvar=False)
,但是速度不够快(不到一秒钟)。我有R
代码和cor
函数,它非常快。
我本质上只是想要某种与选定汽车和所有其他汽车之间具有相关性的清单。