草庐IT

pandas-explode

全部标签

python - 使用 "chunksize"和/或 "iterator"用 Pandas 打开选定的行

我有一个很大的csv文件,我用pd.read_csv打开它,如下所示:df=pd.read_csv(path//fileName.csv,sep='',header=None)由于文件很大,我希望能够按行打开它from0to511from512to1023from1024to1535...from512*nto512*(n+1)-1其中n=1、2、3...如果我将chunksize=512添加到read_csv的参数中df=pd.read_csv(path//fileName.csv,sep='',header=None,chunksize=512)然后我输入df.get_chunk(

python - 如何从 pandas.DataFrame.info() 返回一个字符串

我想显示pandas.DataFrame.info()的输出在tkinter文本小部件上,所以我需要一个字符串。但是pandas.DataFrame.info()返回NoneType无论如何我可以改变这个吗?importpandasaspdimportnumpyasnpdata=np.random.rand(10).reshape(5,2)cols='a','b'df=pd.DataFrame(data,columns=cols)df_info=df.info()print(df_info)type(df_info)我想做这样的事情:info_str=""df_info=df.info

python - Pandas 合并具有不同名称的列并避免重复

这个问题在这里已经有了答案:PandasMerging101(8个答案)关闭3年前。如何在两列名称不同的列上合并两个pandasDataFrame并保留其中一列?df1=pd.DataFrame({'UserName':[1,2,3],'Col1':['a','b','c']})df2=pd.DataFrame({'UserID':[1,2,3],'Col2':['d','e','f']})pd.merge(df1,df2,left_on='UserName',right_on='UserID')这提供了一个像这样的DataFrame但很明显,我正在合并UserName和UserID,

python - 具有多索引的 Pandas 样式对象

我正在使用样式器格式化pandas数据框以突出显示列和格式化数字。我还想应用多索引以获得更清晰、愉快和易于阅读的内容。由于我将Styler应用于列的子集,因此它不适用于多索引。例子:arrays=[np.hstack([['One']*2,['Two']*2]),['A','B','C','D']]columns=pd.MultiIndex.from_arrays(arrays)data=pd.DataFrame(np.random.randn(5,4),columns=list('ABCD'))data.columns=columnsimportseabornassnscm=sns.

python - 在 pandas python 列中获取非数字行

我查看了这篇文章:findingnon-numericrowsindataframeinpandas?但它并没有真正回答我的问题。我的示例数据:importpandasaspdd={'unit':['UD','UD','UD','UD','UD','UD'],'N-D':['Q1','Q2','Q3','Q4','Q5','Q6'],'num':[-1.48,1.7,-6.18,0.25,'sum(d)',0.25]}df=pd.DataFrame(d)看起来像这样:N-Dnumunit0Q1-1.48UD1Q21.70UD2Q3-6.18UD3Q40.25UD4Q5sum(d)UD5

python - Pandas - 按行交错/压缩两个数据帧

假设我有两个数据框:>>df10120abc1def>>df20120ABC1DEF我怎样才能交错行?即得到这个:>>interleaved_df0120abc1ABC2def3DEF(请注意,我的真实DF具有相同的列,但行数不同)。我尝试过的灵感来自thisquestion(非常相似,但询问列):importpandasaspdfromitertoolsimportchain,zip_longestdf1=pd.DataFrame([['a','b','c'],['d','e','f']])df2=pd.DataFrame([['A','B','C'],['D','E','F']])

python - 在 Pandas 中,如何根据值的类型过滤系列?

给定一个系列importpandasaspds=pd.Series(['foo','bar',42])我想获得一个“子系列”pd.Series(['foo','bar']),其中所有值都是字符串。我试过像这样的bool索引:s[isinstance(s,str)]但这给出了一个KeyError:False到目前为止,在我寻找合适方法的过程中,我遇到了select,但这对标签强加了一个标准,而不是值。在这种情况下,如何根据值(的类型)进行过滤? 最佳答案 使用apply或列表理解:s[s.apply(lambdax:isinstanc

python - Pandas 多索引 : Divide all columns by one column

我有一个数据框results的形式TOTEXPPQTOTEXPCQFINLWT21yearquarter1319.183392e+095.459961e+091271559.39822.907887e+091.834126e+09481169.672我试图将所有(前两列)除以最后一列。我的尝试是weights=results.pop('FINLWT21')results/weights但是我明白了ValueError:cannotjoinwithnolevelspecifiedandnooverlappingnames我不明白:索引中有重叠的名称:weights.head()yearq

python - 从一个函数在 Pandas Dataframe 中创建多列

我是一个Python新手,所以我希望我的两个问题是清楚和完整的。我在下面以csv格式发布了实际代码和测试数据集。我已经能够构建以下代码(主要是在StackOverflow贡献者的帮助下)来使用Newton-Raphson方法计算期权合约的隐含波动率。该过程在确定隐含波动率时计算Vega。虽然我可以使用PandasDataFrameapply方法为隐含波动率创建一个新的DataFrame列,但我无法为Vega创建第二个列。当函数同时返回IV和Vega时,有没有办法创建两个单独的DataFrame列?我试过:从函数返回iv,vegadf[['myIV','Vega']]=df.apply(

python - 在 Pandas 中将列拆分为多行的快速方法

我有以下数据框:importpandasaspddf=pd.DataFrame({'gene':["foo","bar//lal","qux","woz"],'cell1':[5,9,1,7],'cell2':[12,90,13,87]})df=df[["gene","cell1","cell2"]]df看起来像这样:Out[6]:genecell1cell20foo5121bar//lal9902qux1133woz787我想做的是拆分“基因”列,使其结果如下:genecell1cell2foo512bar990lal990qux113woz787我目前的做法是这样的:importp