Я до сих пор не могу понять, как и где, но вы показали, что где-то в функции вы смогли построить серию float64, содержащую, например, Left-Amygdala_Volume_mm3
в качестве индекса и -0.29729
в качестве значения.И я предполагаю, что в то же время у вас есть значение meand
для того же значения индекса.
Точнее, я буду предполагать:
k = pd.Series([-0.29729], dtype=np.float64,index=['Left-Amygdala_Volume_mm3'])
, потому что оно печатается как:
print(k)
Left-Amygdala_Volume_mm3 -0.29729
dtype: float64
В то же время я предполагаю, что meand
также является аналогичной серией.Таким образом, мы получим доступ к его значению как meand.iloc[0]
(допустим, значение равно 9174.1)
Вы должны объединить их, чтобы построить содержимое строки:
row = k.reset_index().iloc[0].tolist() + [meand.iloc[0]]
В нашем примере row
: ['Left-Amygdala_Volume_mm3', -0.29729, 9174.1]
Итак, теперь вам нужно построить большой список из этих строк:
def select_volumes(group_c,group_k):
Select_list = ["Amygdala", "Hippocampus", "Lateral-Ventricle",
"Pallidum", "Putamen", "Thalamus"]
Side = ["Left", "Right"]
data = []
for s in Side:
for struct in Select_list:
volumes_c = group_c.filter(regex="^(?=.*"+s+")(?=.*"+struct+")
(?=.*Volume)")
volumes_k = group_k.filter(regex="^(?=.*"+s+")(?=.*"+struct+")
(?=.*Volume)")
k = cohens_d(volumes_c, volumes_k)
meand = volumes_c.mean()
# build a row of result df
data.append(k.reset_index().iloc[0].tolist() + [meand.iloc[0]])
# after the loop combine the rows into a dataframe and return it:
result = pd.DataFrame(data, columns=['index', "Cohen's d", 'Mean']).set_index('index')
return result