jjzjj

python - 枚举 DataFrame 中每个组的每一行

在pandas中,我如何添加一个新列来枚举基于给定分组的行?例如,假设有以下DataFrame:importpandasaspdimportnumpyasnpa_list=['A','B','C','A','A','C','B','B','A','C']df=pd.DataFrame({'col_a':a_list,'col_b':range(10)})dfcol_acol_b0A01B12C23A34A45C56B67B78A89C9我想添加col_c这给了我基于col_a的分组的“组”的第N行和排序col_b.期望的输出:col_acol_bcol_c0A013A324A438A8

python - 断言错误 : col should be Column

如何在PySpark中创建一个新列并用今天的日期填充此列?这是我尝试过的:importdatetimenow=datetime.datetime.now()df=df.withColumn("date",str(now)[:10])我收到这个错误:AssertionError:colshouldbeColumn 最佳答案 HowtocreateanewcolumninPySparkandfillthiscolumnwiththedateoftoday?已经有这个功能了:frompyspark.sql.functionsimportc

python - 将 Pandas DataFrame 中的列值与 "NaN"值连接起来

我正在尝试将PandasDataFrame列与NaN值连接起来。In[96]:df=pd.DataFrame({'col1':["1","1","2","2","3","3"],'col2':["p1","p2","p1",np.nan,"p2",np.nan],'col3':["A","B","C","D","E","F"]})In[97]:dfOut[97]:col1col2col301p1A11p2B22p1C32NaND43p2E53NaNFIn[98]:df['concatenated']=df['col2']+','+df['col3']In[99]:dfOut[99]:c

python - 循环中的 Seaborn 图

我正在使用Spyder并在循环中绘制Seaborn计数图。问题是这些图似乎在同一个对象中发生在彼此之上,我最终只看到了图的最后一个实例。如何在我的控制台中逐个查看每个图?forcolindf.columns:if((df[col].dtype==np.float64)|(df[col].dtype==np.int64)):i=0#Laterelse:print(col+'countplot\n')sns.countplot(x=col,data=df)sns.plt.title(col+'countplot') 最佳答案 您可以在每

python - 将列值更改为 Pandas 中的列标题

我有以下代码,它采用pandas数据框的一列中的值,并将它们作为新数据框的列。数据框第一列中的值成为新数据框的索引。从某种意义上说,我想把一个邻接表变成一个邻接矩阵。到目前为止,这是代码:importpandasaspaprint"OriginalDataFrame"#Createadataframeoldcols={'col1':['a','a','b','b'],'col2':['c','d','c','d'],'col3':[1,2,3,4]}a=pa.DataFrame(oldcols)printa#Thecolumnsofthenewdataframewillbetheval

python - 从具有多个字符串的列制作 get_dummies 类型数据框的最快方法

我有一列“col2”,其中包含一个字符串列表。我当前的代码太慢了,大约有2000个唯一字符串(下例中的字母)和4000行。最终为2000列和4000行。In[268]:df.head()Out[268]:col1col206A,B115C,G,A225B有没有一种快速的方法可以将其转换为getdummies格式?每个字符串都有自己的列,如果该行在col2中有该字符串,则在每个字符串的列中有一个0或1。In[268]:defget_list(df):d=[]forrowindf.col2:row_list=row.split(',')forstringinrow_list:ifstrin

python - 从键为元组的字典创建数据框

我有以下字典,键为元组:d={('first','row'):3,('second','row'):1}我想创建一个包含3列的数据框:Col1、Col2和Col3,它应该如下所示:Col1Col2Col3firstrow3secondrow4除了逐对解析dict之外,我不知道如何拆分元组。 最佳答案 先构造一个Series,然后重新设置索引就会得到一个DataFrame:pd.Series(d).reset_index()Out:level_0level_100firstrow31secondrow1您可以在之后重命名列:df=pd

python - 过滤掉特定列中的 nan 行

df=Col1Col2Col31nan425433nan给定数据框df,我想获取一个新的数据框df2,它在列Col2nan/。这是预期的结果:df2=Col1Col2Col325433nan我知道可以使用pandas.isnull和dropna,但是如何仅指定应应用过滤的特定列? 最佳答案 你可以使用DataFrame.dropna()方法:In[202]:df.dropna(subset=['Col2'])Out[202]:Col1Col2Col3125.04.0233.0NaN或(在这种情况下)不那么惯用Series.notnu

python - Pandas 中不同的 read_csv index_col = None/0/False

我使用了下面的read_csv命令:In[20]:dataframe=pd.read_csv('D:/UserInterest/output/ENFP_0719/Bookmark.csv',index_col=None)dataframe.head()Out[20]:Unnamed:0timestampurlvisits001.404028e+09http://m.blog.naver.com/PostView.nhn?blogId=mi...2111.404028e+09http://m.facebook.com/l.php?u=http%3A%2F%2Fblo...1221.404

python - 过滤数据框并根据给定条件添加新列

我有这样一个数据框IDcol1col21Abcstreet2017-07-271None2017-08-171Defstreet2018-07-151None2018-08-132fbgstreet2018-01-072None2018-08-122trfstreet2019-01-15我想过滤掉col1中的所有“无”并将相应的col2值添加到新列col3中。我的输出看起来像这样IDcol1col2col31Abcstreet2017-07-272017-08-171Defstreet2018-07-152018-08-132fbgstreet2018-01-072018-08-122