我有3个数据流,df1是18x19,df2是18x1,df3是18x19。我想要一个新的dataframe,它给df4=scipy.stats.binom.pmf(df1,df2,df3),我不能运行它的数据。所以,例如
df4[0,0] = scipy.stats.binom.pmf(df1[0,0],df2[0,0],df3[0,0])或
df4[2,3] = scipy.stats.binom.pmf(df1[2,3],df2[2,0],df3[2,3])诸若此类。
我尝试过使用map函数,但在这种情况下它不起作用。我可以使用循环,但这不是一个有效的解决方案。
发布于 2022-11-25 12:57:38
import pandas as pd
from scipy import stats
import numpy as np
# create the dataset
row = 18
col = 19
df2 = pd.DataFrame(np.random.randint(1,20,size=(row,1)))
df1 = pd.DataFrame({c: [np.random.randint(0, df2.loc[r,0]) for r in range(row)] for c in range(col)})
df3 = pd.DataFrame(np.random.uniform(0,1, size = (row,col)))
# implementation
# can use
# row, col = df1.shape
df4 = pd.DataFrame({c: [
stats.binom.pmf(df1.loc[r,c],df2.loc[r,0],df3.loc[r,c]
) for r in range(row)
] for c in range(col)})https://stackoverflow.com/questions/74572637
复制相似问题