chenjl1972 发表于 2021-1-2 07:43:06

如何把Kruskal统计的结果按要求写进CSV

我做了kruskal统计,print 后是这样的
KruskalResult(statistic=22.18657412150243, pvalue=0.05253751359358559)

我想写进CSV中。
df2=open(r'\生物燃料香烟暴露CT分析\组间比较统计.csv','w',newline='')
writer2=csv.writer(df2)
writer2.writerow('组间比较统计分析')
stat_result = stats.kruskal(*data_n)
stat_result=
writer2.writerow(['depentent_factor','statistical','P'])
writer2.writerow(stat_result)

我希望的是把stat_result中statistical和p值分别取小数点后两位后放到我想要的位置

depentent_factor        statistical          P
BMI                                22.19        0.05

现在做出来的是
depentent_factor        statistical        P
BMI        KruskalResult(statistic=22.18657412150243, pvalue=0.05253751359358559)       
请问,我该如何处理,多谢了

孤独的嫖客 发表于 2021-1-2 08:59:20

我不是很确定KruskalResult()是个什么,但是你可以试试用正则来清洗数据
举个列子
import re

s = "KruskalResult(statistic=22.18657412150243, pvalue=0.05253751359358559)"
statistic = re.findall("statistic=(.*?),",s)
pvalue = re.findall("pvalue=(.*?)\)",s)

print(statistic)
print(pvalue)

结果:
22.18657412150243
0.05253751359358559

kogawananari 发表于 2021-1-2 13:14:30

writer2=csv.writer(df2)
writer2.writerow(('组间比较统计分析',))
stat_result = stats.kruskal(*data_n)
writer2.writerow(['depentent_factor','statistical','P'])
writer2.writerow((depentent_factor, stat_result.statistic,stat_result.pvalue))
要不就是
writer2=csv.writer(df2)
writer2.writerow(('组间比较统计分析',))
stat_result = stats.kruskal(*data_n)
writer2.writerow(['depentent_factor','statistical','P'])
writer2.writerow((depentent_factor, stat_result.statistic(),stat_result.pvalue()))
这两个有一个是对的

chenjl1972 发表于 2021-1-2 18:00:28

孤独的嫖客 发表于 2021-1-2 08:59
我不是很确定KruskalResult()是个什么,但是你可以试试用正则来清洗数据
举个列子



非常感谢,这个办法确实非常有用
页: [1]
查看完整版本: 如何把Kruskal统计的结果按要求写进CSV