Python中文
首页
教程
问答
标签
搜索
登录
注册
基于其他文本列向pandas dataframe添加数值列
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有这个数据帧:</p> <pre class="lang-py prettyprint-override"><code>df = pd.DataFrame([['137', 'earn'], ['158', 'earn'],['144', 'ship'],['111', 'trade'],['132', 'trade']], columns=['value', 'topic'] ) print(df) value topic 0 137 earn 1 158 earn 2 144 ship 3 111 trade 4 132 trade </code></pre> <p>我还需要一个类似这样的数字列:</p> ^{pr2}$ <p>基本上,我想生成一个列的数值。我实施了这个解决方案:</p> <pre class="lang-py prettyprint-override"><code>topics_dict = {} topics = np.unique(df['topic']).tolist() for i in range(len(topics)): topics_dict[topics[i]] = i df['topic_id'] = [topics_dict[l] for l in df['topic']] </code></pre> <p>不过,我很确定有一个更优雅和更通俗的方法来解决这个问题,但我在谷歌上找不到什么东西。 我读过pandas的<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html" rel="nofollow noreferrer">get_dummies</a>,但这会为原始列中的每个不同值创建多个列。在</p> <p>我很感谢你的帮助和指引!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我们可以使用apply函数在现有列的基础上创建新列,如下所示。在</p> <p><code>topic_list = list(df["topic"].unique()) df['topic_id'] = df.apply(lambda row: topic_list.index(row["topic"]),axis=1)</code></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
4 回答
如何添加表示整数的擦边字符串?
5 回答
如何添加要在Bokeh中使用的新font.ttf文件?
4 回答
如何添加要显示的矩阵XY轴编号和XY轴
7 回答
如何添加计数?
2 回答
如何添加计数器函数?
1 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
5 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
2 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
8 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
10 回答
如何添加谷歌地点自动完成到Flask?
5 回答
如何添加超时、python discord bot
8 回答
如何添加超过1dp的检查
1 回答
如何添加距离方法
8 回答
如何添加跟随游戏的敌人精灵
7 回答
如何添加路径以便python可以找到程序?
2 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答