替换数据集中的值 Pandas Python [重复]
Posted
技术标签:
【中文标题】替换数据集中的值 Pandas Python [重复]【英文标题】:Replace values in dataset Pandas Python [duplicate] 【发布时间】:2018-02-26 13:37:00 【问题描述】:我的数据集是...
value
0.486903
0.520908
0.530904
0.483284
0.475935
0.502831
0.541743
0.566318
0.500073
0.510959
0.546008
0.551682
0.534396
0.501554
0.541277
我想在我的数据集中替换这些值,请提供所需的 Python 代码?
类别: 0.470000-0.500000 = 1, 0.500001-0.530000=2, 0.530001-0.56000=3
请提及如何将修改后的数据写回csv文件???
【问题讨论】:
我重新打开问题是因为cut
和+-inf
和to_csv
。
我试图找到它的欺骗,但没有成功。
还是一样的,只是有标签,下次使用徽章重新打开前请讨论。您还可以像这样提醒关闭的用户:@Zero
@cᴏʟᴅsᴘᴇᴇᴅ - 我没有收到您的评论通知。那你觉得一样吗?我正在寻找pd.cut
和to_csv
和this,但没有成功。我认为这是半骗子。你怎么看?
@jezrael 重要的是 pd.cut 得到了回答。为了保存到 CSV,这是任何人都可以在任何地方找到的谷歌搜索/基本知识......它不一定是 100% 的欺骗,只要它超过 50%(这是超过 90% 的欺骗)就可以了
【参考方案1】:
使用cut
。还为低于0.47
和高于.56
的值添加了另外两个组,因为样本数据中的值0.566318
。
bins = [-np.inf, .47, 0.5, .53, .56, np.inf]
labels=[0,1,2,3,4]
df['label'] = pd.cut(df['value'], bins=bins, labels=labels)
print (df)
value label
0 0.486903 1
1 0.520908 2
2 0.530904 3
3 0.483284 1
4 0.475935 1
5 0.502831 2
6 0.541743 3
7 0.566318 4
8 0.500073 2
9 0.510959 2
10 0.546008 3
11 0.551682 3
12 0.534396 3
13 0.501554 2
14 0.541277 3
Numpy 解决方案:
bins = [-np.inf, .47, 0.5, .53, .56, np.inf]
df['label'] = np.array(bins).searchsorted(df['value']) - 1
print (df)
value label
0 0.486903 1
1 0.520908 2
2 0.530904 3
3 0.483284 1
4 0.475935 1
5 0.502831 2
6 0.541743 3
7 0.566318 4
8 0.500073 2
9 0.510959 2
10 0.546008 3
11 0.551682 3
12 0.534396 3
13 0.501554 2
14 0.541277 3
to_csv
上次写信给csv
:
df.to_csv('myfile', index=False)
【讨论】:
非常感谢...这是我要找的 wat!以上是关于替换数据集中的值 Pandas Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中将数据集中的值添加到一起? [复制]
根据另一个数据框 python pandas 替换列值 - 更好的方法?