草庐IT

python - 如何获取 pandas MultiIndex 数据框中的索引值?

df=pd.DataFrame({'a':[2,3,5],'b':[1,2,3],'c':[12,13,14]})df.set_index(['a','b'],inplace=True)display(df)s=df.iloc[1]#Howtoget'a'and'b'valuefroms?令人恼火的是,有些列变成了索引,我们不能简单地使用df['colname']来获取值。它是否鼓励我们使用set_index(drop=False)? 最佳答案 当我打印s我得到In[8]:s=df.iloc[1]In[9]:sOut[9]:c13N

python - 如何一次将函数应用于 Pandas 数据框中的多列

我经常处理格式不正确的数据(即数字字段不一致等)可能还有其他我不知道的方法,但我在数据框中格式化单个列的方法是使用一个函数并将该列映射到该函数。format=df.column_name.map(format_number)问题:1-如果我有一个包含50列的数据框,并且想将该格式应用于多列,等等第1、3、5、7、9列,该怎么办你能走吗:format=df.1,3,5,9.map(format_number)..这样我就可以在一行中格式化我所有的数字列吗? 最佳答案 您可以执行df[['Col1','Col2','Col3']].ap

python - Pandas 系列到 json 和返回

我在将简单的Pandas系列转换为json字符串并返回时遇到了一些问题。这是我的尝试importpandasaspdf=pd.Series(data=[1.0,2.0,3.0],index=[10,20,30])x=f.to_json()a=pd.read_json(x)这会导致ValueError:如果使用所有标量值,则必须传递索引。json字符串x看起来像{"10":1.0,"20":2.0,"30":3.0}这里缺少什么。请帮忙 最佳答案 您需要指定对象的类型(默认为DataFrame)和JSON字符串的格式。更多信息here

python - 如何在 Twitter 数据的 Pandas 数据框上应用 NLTK word_tokenize 库?

这是我用于Twitter语义分析的代码:-importpandasaspdimportdatetimeimportnumpyasnpimportrefromnltk.tokenizeimportword_tokenizefromnltk.corpusimportstopwordsfromnltk.stem.wordnetimportWordNetLemmatizerfromnltk.stem.porterimportPorterStemmerdf=pd.read_csv('twitDB.csv',header=None,sep=',',error_bad_lines=False,enc

python - 如何排列 Pandas 中的一列

我有3列的Pandas数据框:X1X2Y121240361我只想置换一列X1,结果是:X1X2Y321140261我只发现了如何通过重新索引来排列所有列,但没有发现如何只对一列执行此操作。 最佳答案 使用numpy.random.permutation:df['X1']=np.random.permutation(df['X1'])print(df)X1X2Y032112402161 关于python-如何排列Pandas中的一列,我们在StackOverflow上找到一个类似的问题:

python - pandas groupby 方法实际上是如何工作的?

所以我试图理解pandas.dataFrame.groupby()函数,我在文档中看到了这个例子:In[1]:df=pd.DataFrame({'A':['foo','bar','foo','bar',...:'foo','bar','foo','foo'],...:'B':['one','one','two','three',...:'two','two','one','three'],...:'C':np.random.randn(8),...:'D':np.random.randn(8)})...:In[2]:dfOut[2]:ABCD0fooone0.469112-0.8618

python - 可以memmap pandas系列。数据框呢?

看来我可以通过创建一个mmap的ndarray并使用它来初始化系列来memmappython系列的基础数据。defassert_readonly(iloc):try:iloc[0]=999#Shouldbenon-editableraiseException("MUSTBEREADONLY(1)")exceptValueErrorase:assert"read-only"ine.message#Originalndarrayn=1000_arr=np.arange(0,1000,dtype=float)#Convertittoamemmapmm=np.memmap(filename,m

python - 使用 pandas 进行基于 NLTK 的文本处理

标点符号和数字,小写在使用nltk时不起作用。我的代码stopwords=nltk.corpus.stopwords.words('english')+list(string.punctuation)user_defined_stop_words=['st','rd','hong','kong']new_stop_words=stopwords+user_defined_stop_wordsdefpreprocess(text):return[wordforwordinword_tokenize(text)ifword.lower()notinnew_stop_wordsandnotw

python - 将 pandas 列值转换为行

我正在尝试将数据框转换为长格式。我开始的数据框:df=pd.DataFrame([['a','b'],['d','e'],['f','g','h'],['q','r','e','t']])df=df.rename(columns={0:"Key"})Key1230abNoneNone1deNoneNone2fghNone3qret不指定列数,可能超过4列。键后每个值应该有一个新行这得到了我所需要的,但是,似乎应该有一种方法可以做到这一点而不必删除空值:new_df=pd.melt(df,id_vars=['Key'])[['Key','value']]new_df=new_df.dro

python - 使用元组键从字典创建 MultiIndex pandas DataFrame

我想从Pythoncollections.Counter字典高效地创建一个pandasDataFrame..但是还有一个额外的要求。Counter字典如下所示:(a,b):5(c,d):7(a,d):2这些字典键是元组,其中第一个成为行,第二个成为数据框的列。生成的DataFrame应该如下所示:bda52c07对于较大的数据,我不想使用增长方法df[a][b]=5等创建数据框,因为它创建新数据框的副本时效率极低每次完成这样的扩展(我相信)。也许正确的答案是通过numpy数组? 最佳答案 使用Series和unstackpd.Ser