我有一个巨大的Excel文件,其中包含几百列。例如,我想将前10列与接下来的10列或任何其他列范围相关联。什么是做到这一点的最佳方法。例如,使用View
,我得到前10列。不幸的是,我不知道该怎么做。
你能帮我吗?
答案 0 :(得分:0)
考虑使用corr.with
而不是corr
。但是,corr.with
将 DataFrame 与 Series 进行比较(df到df是模糊的配对,因此返回NaN
)。因此,请考虑对比较列的range
进行列表理解以返回 Series 的列表,然后将其转换为 DataFrame 。下面用随机种子数据进行演示。
import numpy as np
import pandas as pd
np.random.seed(61918)
# DATAFRAME OF 100 COLS AND 100 ROWS
df = pd.DataFrame(np.random.randn(100,100))
# CORRELATION BETWEEN FIRST 10 AND NEXT 10 COLUMNS
# (ADJUST .iloc INDICES AND range FOR OTHER COLS)
corr_df = pd.DataFrame([df.iloc[:,0:10].corrwith(df.iloc[:,i], axis=0) for i in range(10,20)])
print(corr_df)
# 0 1 2 3 4 5 6 7 8 9
# 0 -0.099616 0.052101 -0.089509 -0.053868 0.033873 -0.043973 0.044963 -0.012135 -0.021728 -0.052815
# 1 -0.111734 0.187650 0.104816 0.008250 -0.035936 0.002264 0.023941 -0.135608 0.081189 -0.073853
# 2 0.010684 -0.065890 -0.234728 -0.044789 0.042876 -0.114719 -0.073446 -0.185746 0.007169 0.158093
# 3 0.056081 -0.019951 -0.057006 -0.060794 -0.069991 0.039497 0.041345 0.018930 -0.056765 -0.128366
# 4 0.234364 -0.202907 0.039083 -0.017380 -0.020491 -0.126441 0.033971 -0.088621 -0.011655 -0.007285
# 5 0.010350 -0.160066 -0.141838 0.083785 -0.125714 -0.007721 0.082826 -0.207254 -0.064831 -0.036318
# 6 0.007275 -0.004525 -0.086660 -0.070298 0.024023 -0.087400 -0.029985 0.042614 -0.058841 0.035254
# 7 0.030607 -0.101061 0.004954 0.092204 -0.005586 0.041793 0.067349 -0.003554 0.050511 -0.039119
# 8 -0.061966 -0.198703 -0.011631 -0.028350 0.021107 0.160191 0.087607 -0.032543 -0.025399 0.005975
# 9 -0.053608 0.079021 -0.068879 0.005653 -0.040717 -0.030002 -0.008213 -0.005511 -0.052635 0.176989