Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >按类别在Pandas中添加缺少的值

按类别在Pandas中添加缺少的值
EN

Stack Overflow用户
提问于 2017-12-13 10:18:38
回答 1查看 310关注 0票数 1

我是Pandas的新手,我有一个如下形式的数据框架:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                 date category  value
0 2017-11-30 13:58:57        A    901
1 2017-11-30 13:59:41        B    905
2 2017-11-30 13:59:41        C    925

第一列是日期,第二列是分类的,有三个已知的类别。

它是通过以下方式生成的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
df = pd.DataFrame.from_items( [('date', ['2017-11-30 13:58:57', '2017-11-30 13:59:41', '2017-11-30 13:59:41']),('category',['A','B', 'C']),("value", [901, 905, 925])])
df['date'] =  pd.to_datetime(df['date'])
df['category'] = df['category'].astype('category')

问题是,对于每个日期,并不是所有类别都在那里。我希望添加缺少值的缺少类别来获取:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                  date category value
0  2017-11-30 13:58:57        A   901
1  2017-11-30 13:58:57        B   nan
2  2017-11-30 13:58:57        C   nan
3  2017-11-30 13:59:41        A   nan
4  2017-11-30 13:59:41        B   905
5  2017-11-30 13:59:41        C   925

有没有一种内置的方法可以做到这一点,而不是迭代行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-13 10:21:51

您可以通过MultiIndex.from_product使用reindex

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = df.set_index(['date','category'])
cats = pd.MultiIndex.from_product(df.index.levels, names=df.index.names)

df = df.reindex(cats).reset_index()
print (df)
                 date category  value
0 2017-11-30 13:58:57        A  901.0
1 2017-11-30 13:58:57        B    NaN
2 2017-11-30 13:58:57        C    NaN
3 2017-11-30 13:59:41        A    NaN
4 2017-11-30 13:59:41        B  905.0
5 2017-11-30 13:59:41        C  925.0

unstack + stack

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = (df.set_index(['date','category'])['value']
        .unstack()
        .stack(dropna=False)
        .reset_index(name='value'))
print (df)
                 date category  value
0 2017-11-30 13:58:57        A  901.0
1 2017-11-30 13:58:57        B    NaN
2 2017-11-30 13:58:57        C    NaN
3 2017-11-30 13:59:41        A    NaN
4 2017-11-30 13:59:41        B  905.0
5 2017-11-30 13:59:41        C  925.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47790528

复制
相关文章
Vue 按条件添加类
Vue 按条件添加类 <el-card class="box-card"> <div class="question" ref="question" v-for="(question, index) in questionList" :key="question.id"> <h4>{{(index+1) +10*(currentPage-1)}}. {{question.ques}}</h4> <div v-for="option in question.opti
赤蓝紫
2023/01/02
9750
Vue 按条件添加类
pandas排序 按索引和值排序
pandas 排序 import pandas as pd import numpy as np unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns=['col2','col1']) print (unsorted_df) # 按标签排序 sorted_df = unsorted_df.sort_index(ascending=False) # 降序 print (sorted_df) s
AI拉呱
2021/01/14
2.7K0
Java中的按值传递
这个时候可能会有疑问了,为什么add方法可以修改List数组,但是append和addNum却没有修改传进来的值
俺也想起舞
2019/07/24
1.8K0
pandas中的缺失值处理
在真实的数据中,往往会存在缺失的数据。pandas在设计之初,就考虑了这种缺失值的情况,默认情况下,大部分的计算函数都会自动忽略数据集中的缺失值,同时对于缺失值也提供了一些简单的填充和删除函数,常见的几种缺失值操作技巧如下
生信修炼手册
2020/07/14
2.6K0
Java中只有按值传递,没有按引用传递!
今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这一特性很是熟悉! 结果发现,我错了! 答案是: 值传递!Java中只有按值传递,没有按引用传递! 回家后我就迫不及待地查询了这个问题,觉得自己对java这么基础的问题都搞错实在太丢人! 综合网上的描述,我大概了解了是怎么回事,现在整理如下,如有不对之处望大神提出! 先来看一个作为程序员都熟悉的值传递的例子:
java达人
2018/01/31
1.1K0
Java中只有按值传递,没有按引用传递!
Pandas中替换值的简单方法
在处理数据时,编辑或删除某些数据作为预处理步骤的一部分。这可能涉及从现有列创建新列,或修改现有列以使它们适合更易于使用。为此,Pandas 提供了多种方法,您可以使用这些方法来处理 DataFrame 中所有数据类型的列。
deephub
2021/08/20
5.5K0
pandas按行按列遍历Dataframe的几种方式
iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。 itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。 iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。 示例数据
kirin
2021/04/30
7.1K0
pandas处理缺失值的函数_pandas填充缺失值
df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据.
全栈程序员站长
2022/09/30
2K0
JavaScript 按值传递 & 按引用传递
其次,对象的比较并非值的比较:对象的比较均是引用的比较,当且仅当它们引用同一个基对象时,它们才相等。     即使两个对象包含同样的属性和相同的值,它们也是不相等的。各个索引元素完全相等的两个数组也不相等
书童小二
2018/09/03
3.8K0
hastable按值排序
最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下:
codeniu
2022/02/25
1.3K0
Pandas按班拆分Excel文件+按班排名和按级排名
1。用pandas.groupby+apply+to_excel进行按‘班别’列对一个Excel文件拆分成一个班一个文件的操作。简单又强大
哆哆Excel
2022/10/25
1.2K0
Pandas按班拆分Excel文件+按班排名和按级排名
JS/TS 对数组中的对象按相同值进行分组
举个例子:对以下数组按 lastName 的值进行分组分类 const listData = [ { firstName: "Rick", lastName: "Sanchez", size: 18 }, { firstName: "Morty", lastName: "Smith", size: 6 }, { firstName: "Jerry", lastName: "Smith", size: 3 }, { firstName: "Beth", lastName: "Smith", s
Leophen
2020/10/09
8.2K0
JS/TS 对数组中的对象按相同值进行分组
java中按值传递和引用传递区别
一种是按值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。简单来说就是直接复制了一份数据过去,因为是直接复制,所以这种方式在传递时如果数据量非常大的话,运行效率自然就变低了,所以java在传递数据量很小的数据是值传递,比如java中的各种基本类型:int,float,double,boolean等类型的,具体可以自己测试。 代码:
用户7886150
2021/02/26
8930
浅析按值传递与按引用传递
下列关于按值传递与按引用传递的描述中,正确的是( )。A.按值传递不会改变实际参数的数值 B.按引用传递能改变实际参数的参考地址C.按引用传递能改变实际参数的内容 D.按引用传递不能改变实际参数的参考地址
田维常
2019/12/17
1.2K0
按值传递 vs. 按指针传递
变量赋值有两种方式:按值传递、按"指针"传递(指针也常称为"引用")。不同的编程语言赋值的方式不一样,例如Python是按"指针"传递的,Go是按值传递的。
py3study
2020/01/20
1.3K0
PANDAs_pandas去除缺失值
该函数主要用于滤除缺失数据。 如果是Series,则返回一个仅含非空数据和索引值的Series,默认丢弃含有缺失值的行。
全栈程序员站长
2022/10/02
4400
pandas读取txt---按行输入按行输出
 1.pandas读取txt---按行输入按行输出 import pandas as pd # 我们的需求是 取出所有的姓名 # test1的内容 ''' id name score 1 张三 100 2 李四 99 3 王五 98 ''' test1 = pd.read_table("test1.txt") # 这个是带有标题的文件 names = test1["name"] # 根据标题来取值 print(names) ''' 张三 李四 王五 ''' # test2的内容 ''' 4 All
汀丶人工智能
2022/12/21
1.2K0
pandas dropna删除有空值的行_pandas中导出缺失值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/28
2.2K0
C/C++按值传递和按地址传递
按值传递:在调用函数中将原函数的值拷贝一份过去被调用的函数,在被调用函数中对该值的修改不会影响原函数的值。
Twcat_tree
2022/11/30
5680
C/C++按值传递和按地址传递
pandas 处理缺失值[dropna、drop、fillna][通俗易懂]
对于dropna和fillna,dataframe和series都有,在这主要讲datafame的
全栈程序员站长
2022/11/04
1.8K0

相似问题

在Pandas数据帧中添加缺少的值

21

在pandas中按组添加缺少年份的行

229

将缺少的值添加到Pandas组

210

在Pandas中添加缺少的行

41

pandas添加列表中缺少的行

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文