草庐IT

dataframe

全部标签

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

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

python - 在 Pandas DataFrame 的字符串中漂亮地打印换行符

我有一个PandasDataFrame,其中一列包含字符串元素,这些字符串元素包含我想按字面打印的新行。但它们只是在输出中显示为\n。也就是说,我要打印这个:posbidder011223但这就是我得到的:posbidder011223我怎样才能完成我想要的?我可以使用DataFrame,还是必须恢复为一次一行手动打印填充列?这是我目前所拥有的:n=4output=pd.DataFrame({'pos':range(1,n+1),'bidder':['']*n})bids={'alice':3,'bob':3}used_pos=[]forbidder,posinbids.items()

python - 有包含列表的 Pandas 列,如何将唯一的列表元素转换为列?

我编写了一个网络抓取工具来从产品表中提取信息并构建数据框。数据表有一个描述列,其中包含描述产品的逗号分隔的属性字符串。我想在数据框中为每个唯一属性创建一个列,并用该属性的子字符串填充该列中的行。下面的示例df。PRODUCTSDATEDESCRIPTIONProductA2016-9-12Steel,Red,HighHardnessProductB2016-9-11Blue,Lightweight,SteelProductC2016-9-12Red我认为第一步是将描述分成一个列表。In:df2=df['DESCRIPTION'].str.split(',')Out:DESCRIPTIO

python - 连接后如何在 Pyspark Dataframe 中选择和排序多个列

我想从现有数据框(在连接后创建)中选择多个列,并希望将这些字段排序为我的目标表结构。怎么做到呢?我使用的方法如下。在这里我可以选择需要但不能按顺序制作的必要列。Required(TargetTablestructure):hist_columns=("acct_nbr","account_sk_id","zip_code","primary_state","eff_start_date","eff_end_date","eff_flag")account_sk_df=hist_process_df.join(broadcast(df_sk_lkp),'acct_nbr','inner'

Python Pandas 添加文件名列 CSV

我的python代码在下面的例子中工作正常。我的代码结合了一个CSV文件目录并匹配标题。但是,我想更进一步-如何添加一个列来附加所用CSV的文件名?importpandasaspdimportglobglobbed_files=glob.glob("*.csv")#createsalistofallcsvfilesdata=[]#pd.concattakesalistofdataframesasanagrumentforcsvinglobbed_files:frame=pd.read_csv(csv)data.append(frame)bigframe=pd.concat(data,i

python - reshape Pandas 数据框

假设有这样一个数据框:df=pd.DataFrame([[1,2,3,4],[5,6,7,8],[9,10,11,12]],columns=['A','B','A1','B1'])我想要一个如下所示的数据框:什么不起作用:new_rows=int(df.shape[1]/2)*df.shape[0]new_cols=2df.values.reshape(new_rows,new_cols,order='F')当然我可以遍历数据并制作一个新的列表列表,但必须有更好的方法。有什么想法吗? 最佳答案 您可以使用lreshape,对于id列

python - Pandas 查询函数不适用于列名中的空格

我有一个数据框,列名中有空格。我正在尝试使用query方法来获取结果。它在“c”列上工作正常,但在“ab”上出现错误importpandasaspda=pd.DataFrame(columns=["ab","c"])a["ab"]=[1,2,3,4]a["c"]=[5,6,7,8]a.query('ab==5')为此,我收到此错误:ab==5^SyntaxError:invalidsyntax我不想用“_”等其他字符填充空间。有一个hack使用pandasql将变量名放在括号内示例:[ab] 最佳答案 从pandas0.25开始,您

python - 两个 Pandas 数据框的联合

假设我有两个数据框:df1:A0a1bdf2:A0a1c我希望结果是两个帧的并集,额外列显示该行所属的源数据帧。如果有重复项,应删除重复项,并且相应的额外列应显示两个来源:AB0adf1,df21bdf12cdf2我可以获得没有重复的连接数据框(df3),如下所示:importpandasaspddf3=pd.concat([df1,df2],ignore_index=True).drop_duplicates().reset_index(drop=True)我想不出/找不到一种方法来控制元素的位置。如何添加额外的列?非常感谢您的任何提示。 最佳答案

python - Pandas DataFrame 索引的自动递增选项

有没有办法在添加新行时设置一个选项来自动增加pandas.DataFrame的索引,或者定义一个函数来管理新索引的创建? 最佳答案 当append时,您可以设置ignore_index=True-ing:In[1]:df=pd.DataFrame([[1,2],[3,4]])In[2]:row=pd.Series([5,6])In[3]:df.append(row,ignore_index=True)Out[3]:01012134256 关于python-PandasDataFrame索

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