当前位置: 首页 > 知识库问答 >
问题:

向Dataframe添加新列并设置多索引

岳晟
2023-03-14

我想添加一个新列app\u vendor\u id,并将其设置为带有currency的MultIndex,但我收到一个错误。

我的代码:

currency = np.array(['BTC','ETH','BCH'])
u = np.array([5000,10000,1046])
cl_bal = pd.DataFrame(np.repeat(u, len(created_at)), index= 
pd.MultiIndex.from_product([currency, created_at], names= 
['currency', 'created_at']), dtype= int)
cl_bal = cl_bal.pivot_table(index='currency', columns= 'created_at')
cl_bal.columns = cl_bal.columns.droplevel(0)
cl_bal['app_vendor_id'] = 3
cl_bal.set_index(['app_vendor_id', 'currency'])

错误:

文件"/库/框架/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/indexes/base.py",第3078行,get_loc返回自己。_engine.get_loc(键)文件"熊猫/_libs/index.pyx",第140行,在熊猫中。_libs.index.索引ngine.get_loc文件“熊猫/_libs/index.pyx”,第162行,在熊猫中。_libs.index.索引ngine.get_loc文件“熊猫/_libs/hashtable_class_helper.pxi”,第1492行,在熊猫中._libs.hashtable.PyObjectHashTable.get_item文件"熊猫/_libs/hashtable_class_helper.pxi",第1500行,在熊猫中。_libs.hashtable.PyObjectHashTable.get_item

在处理上述异常期间,发生了另一个html" target="_blank">异常:

Traceback(最近一次调用最后一次):文件histo_var.py,第202行,cl_bal.set_index(['app_vendor_id','货币'])文件/库/框架/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/frame

第3909行,在set_索引级别=帧[col]中_getitem return self中的值文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/frame.py”,第2688行_getitem_column(key)File“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/frame.py”,第2695行,在_getitem_column返回self中_获取项目缓存(密钥)文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/generic.py”,第2489行,在获取项目缓存值=self中_数据get(项目)文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/internals.py”,第4115行,在get loc=self中。项目。get_loc(item)File“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pandas/core/index/base.py”,第3080行,在get_loc return self中_发动机在pandas中获取loc(self.\u可能\u cast\u indexer(key))文件“pandas/\u libs/index.pyx”,第140行_图书馆。指数IndexEngine。获取pandas中第162行的文件“pandas/_libs/index.pyx”_图书馆。指数IndexEngine。在pandas中获取第1492行的文件“pandas/_libs/hashtable_class_helper.pxi”_图书馆。哈希表。PyObjectHashTable。去拿熊猫_图书馆。哈希表。PyObjectHashTable。获取项目密钥错误:“货币”

共有1个答案

谷星文
2023-03-14

数据帧中使用参数append=True。设置索引,因为货币已在索引中:

created_at = [1,2,3,4]
currency = np.array(['BTC','ETH','BCH'])
u = np.array([5000,10000,1046])
cl_bal = pd.DataFrame(np.repeat(u, len(created_at)), 
                      index=pd.MultiIndex.from_product([currency, created_at], 
                                                       names= ['currency', 'created_at']), 
                                                       dtype= int)
cl_bal = cl_bal.pivot_table(index='currency', columns= 'created_at')
cl_bal.columns = cl_bal.columns.droplevel(0)
cl_bal['app_vendor_id'] = 3
df = cl_bal.set_index(['app_vendor_id'], append=True)
print (df)
created_at                  1      2      3      4
currency app_vendor_id                            
BCH      3               1046   1046   1046   1046
BTC      3               5000   5000   5000   5000
ETH      3              10000  10000  10000  10000

 类似资料:
  • 几个小时以来,我一直试图找到一种方法来复制n次列,并为它们添加一个,但运气不佳。请帮帮忙! 当前数据帧: 输出:

  • 本文向大家介绍向Pandas中的现有DataFrame添加新列,包括了向Pandas中的现有DataFrame添加新列的使用技巧和注意事项,需要的朋友参考一下 Pandas 数据框是一种二维数据结构,即,数据以表格的形式在行和列中对齐。可以使用python dict,list和series等创建它。在本文中,我们将看到如何在现有数据框中添加新列。因此,首先让我们使用pandas系列创建一个数据框。

  • 问题内容: 我有以下索引的DataFrame,其中的命名列和行不是连续数字: 我想在现有数据框架中添加新列,并且不想更改数据框架中的任何内容(即,新列的长度始终与DataFrame相同)。 我尝试了不同的版本,但我没有得到我想要的,最多只是错误的结果。如何e在上面的示例中添加列? 问题答案: 使用原始的df1索引创建系列: 编辑2015年 有些人报告使用此代码。 但是,该代码仍可以在当前的熊猫0.

  • 那么,如何使用PySpark向现有的DataFrame添加一个新列(基于Python vector)呢?

  • 初始数据流: 产生的数据frame: 我通常通过使用以下内容将新列“追加”到dataframe:

  • 问题内容: 在上面的给定代码中,allWords表示从文件到其字数(Row: (string, integer))的映射。现在,我想将所有文件的结果聚合到一个DataFrame中,同时保留提到该单词的原始文件。由于最后,每个单词可能已在多个文件中提及,因此该files列设计为整数类型集(假设文件被映射为整数)。现在,我正在尝试向allWordsDataFrames添加一个新列,然后使用unionA