【问题标题】:Replace values in dataset Pandas Python [duplicate]替换数据集中的值 Pandas Python [重复]
【发布时间】: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+-infto_csv
  • 我试图找到它的欺骗,但没有成功。
  • 还是一样的,只是有标签,下次使用徽章重新打开前请讨论。您还可以像这样提醒关闭的用户:@Zero
  • @cᴏʟᴅsᴘᴇᴇᴅ - 我没有收到您的评论通知。那你觉得一样吗?我正在寻找pd.cutto_csvthis,但没有成功。我认为这是半骗子。你怎么看?
  • @jezrael 重要的是 pd.cut 得到了回答。为了保存到 CSV,这是任何人都可以在任何地方找到的谷歌搜索/基本知识......它不一定是 100% 的欺骗,只要它超过 50%(这是超过 90% 的欺骗)就可以了

标签: python pandas dataframe dataset


【解决方案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!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 2015-07-14
  • 2019-06-08
  • 2020-02-22
  • 2020-09-02
  • 1970-01-01
  • 2021-11-20
相关资源
最近更新 更多