一样平常瞎掰
最近网络上出现频率最多的词莫过ChatGPT,这足以分析其受接待的程度。那么,它的力气到底怎样呢?从网络上出现的帖子大概可以窥见一二。带着这种好奇与崇拜,等待与疑惑的心情,小编注册了一个账户,亲身来感受一下ChatGPT的强大。不得不说使用体验真的很丝滑!聊一谈天就可以把标题办理了,这力气着实让人惊艳!
标题
小编用python处置处罚数据的过程中遇到一个标题,不知道(哎,武艺不精)怎样将三列的pandas数据框(如下所示)转化为对称矩阵情势的数据框。对于这个标题,刚开始使用谷歌搜刮了很久,委曲也算找到相识决方法,究竟3列的数据可以转化为矩阵情势了,但过细一看就可以知道这并不是对称矩阵,没有完全满足咱们的需求。下面是具体过程:
import pandas as pdimport numpy as npdata = pd.read_csv('nc.anno.summary.txt',sep='\t')data.head() Feature1 Feature2 count0 tRNA rRNA 1571 rRNA tRNA 642 rRNA CDS 303 tRNA tRNA 204 rRNA rRNA 10arr = data.pivot(index='Feature1',columns='Feature2', values='count')arrFeature2 3UTR 4.5S_RNA 5UTR CDS rRNA sRNA tRNAFeature13UTR NaN NaN NaN NaN 13.0 NaN 2.04.5S_RNA NaN NaN NaN NaN 1.0 NaN NaN5UTR 6.0 NaN NaN NaN 2.0 NaN NaNCDS 3.0 NaN NaN 2.0 10.0 NaN 12.0RNase_P_RNA NaN NaN NaN NaN 1.0 NaN NaNrRNA 3.0 2.0 5.0 30.0 10.0 4.0 64.0sRNA NaN NaN NaN NaN 5.0 NaN NaNtRNA 1.0 NaN NaN 15.0 157.0 NaN 20.0 固然上面的过程看似起作用了,但作用不是那么多,由于咱们想要的是对称矩阵情势,可上面转化的效果却是8行7列,显着列中少了RNase_P_RNA条目。看着这效果,一时间不知所措。固然,假如技能好的话完全可以用力气写一个实现过程,但咱还是想着偷个懒用现成的轮子。
ChatGPT
既然网上不好找答案,那咱们就扣问一下大神ChatGPT,看一看是不是网络说的那样有真本事。下面就是跟大神的谈天过程:
看到回复后,内心不觉发作声音:小样可以啊。再一看这过程好像跟网上搜刮的差不多啊,并且给出了过程分析。拷贝代码直接运行,接下来不出不测的话不测就要出现了,很显着这代码有标题,没有指定列的信息肯定会出现下面的错误:
有错误没关系,直接把错误再仍归去,看看大神的反应:
大神立马可以或许意识到错误出如今哪,并给出一个没有标题的代码。这谈天过程着实像在与某个人谈天,使用上下文知道你在说什么主题没有任何跑偏。固然错误办理了,但这离咱想要的效果还是差那么一点啊:
arr = data.pivot(index='Feature1',columns='Feature2', values='count')arrFeature2 3UTR 4.5S_RNA 5UTR CDS rRNA sRNA tRNAFeature13UTR NaN NaN NaN NaN 13.0 NaN 2.04.5S_RNA NaN NaN NaN NaN 1.0 NaN NaN5UTR 6.0 NaN NaN NaN 2.0 NaN NaNCDS 3.0 NaN NaN 2.0 10.0 NaN 12.0RNase_P_RNA NaN NaN NaN NaN 1.0 NaN NaNrRNA 3.0 2.0 5.0 30.0 10.0 4.0 64.0sRNA NaN NaN NaN NaN 5.0 NaN NaNtRNA 1.0 NaN NaN 15.0 157.0 NaN 20.0 那咱们就接着聊,咱把需求写得更贴切一点,好让大神明确咱们最真实的目标:
好像还是不符合咱们的需求,并且这段代码得当行列数划一的数据,行列数差异的情况下会堕落:
arr = data.pivot(index='Feature1',columns='Feature2', values='count').fillna(0)np.triu(arr) + np.tril(arr.T, -1)Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: operands could not be broadcast together with shapes (8,7) (7,8) 接着,将需求更加过细化,条件限定正确一些:
终于,大神确切地明确了咱们的需求,并给出了美满的办理办法,咱们将这段代码应用到自己的数据上即可:
pivot_df = data.pivot(index='Feature1', columns='Feature2', values='count')symmetric_df = pivot_df.add(pivot_df.T, fill_value=0).fillna(np.nan)symmetric_arr = symmetric_df.fillna(method='ffill', axis=0).fillna(method='ffill', axis=1).fillna(0).valuessymmetric_df 3UTR 4.5S_RNA 5UTR CDS RNase_P_RNA rRNA sRNA tRNA3UTR NaN NaN 6.0 3.0 NaN 16.0 NaN 3.04.5S_RNA NaN NaN NaN NaN NaN 3.0 NaN NaN5UTR 6.0 NaN NaN NaN NaN 7.0 NaN NaNCDS 3.0 NaN NaN 4.0 NaN 40.0 NaN 27.0RNase_P_RNA NaN NaN NaN NaN NaN 1.0 NaN NaNrRNA 16.0 3.0 7.0 40.0 1.0 20.0 9.0 221.0sRNA NaN NaN NaN NaN NaN 9.0 NaN NaNtRNA 3.0 NaN NaN 27.0 NaN 221.0 NaN 40.0竣事语
ChatGPT果然没有让咱们扫兴,而是超出了咱们的预期,这么好的工具不禁让人有一种爱不释手相知恨晚的感觉。聊个天的功夫标题就迎刃而解了,这力气绝对的惊艳!有了如许的工具存在,以后大概不再必要人肉码代码了,而是将更多的时间投入到思考标题自己上面来了。还在等什么,一起来感受AI的力气吧!
往期回顾
ChIPseeker画图函数借用
R语言册本免费领
可视化:网络图
可视化:Wordcloud
可视化:Dumbbell Chart
|