- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个如下所示的数据框:
Priority RID_solve Prob RID_prob Remarks
0 1 5001 34.4% 5040 Caution: FIDs are different
1 1 5001 38.5% 5057 Caution: FIDs are different
2 1 5001 3.3% 5056 Caution: FIDs are different
3 2 5002 74.0% 5057 Caution: FIDs are different
4 2 5002 87.6% 5056 Caution: FIDs are different
5 3 5003 89.4% 5056 Same FID
6 3 5003 89.4% 5056 Caution: FIDs are different
然后我使用 set_index()
对相似的 Priority
和 RID_solve
数据进行分组,以便删除重复项。这是我写的代码:
df1 = df.set_index(['Priority', 'RID_solve', 'Prob', 'RID_prob', 'Remarks']).sort_values(by=['Priority'], ascending = True)
它给出了这样的数据:
这就是我想要的。但我还需要以 0
开头的普通索引。到目前为止,我无法弄清楚如何获得它。我试过 reset_index()
但这只会将我的数据改回原来的形式。
有没有办法既保持上述格式完整又能获取索引?
最佳答案
Then I use set_index() to group the similar Priority and RID_solve data so that the repetition could be removed.
不,你错了。重复不会被删除,只是不会显示,所以你必须决定是否需要 MulitIndex
或默认 RangeIndex
。
你可以检查一下:
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[1] * 6,
'F':list('aaabbb')
})
df = df.set_index(['C','B', 'A'])
print (df)
F
C B A
1 4 a a
5 b a
4 c a
5 d b
e b
4 f b
with pd.option_context('display.multi_sparse', False):
print (df)
F
C B A
1 4 a a
1 5 b a
1 4 c a
1 5 d b
1 5 e b
1 4 f b
编辑:
如有必要,您可以用缺失值替换重复值:
df = pd.DataFrame({
'A':[1] * 6,
'B':[4,5,4,5,5,4],
'C':list('abcdef'),
'F':list('aaabbb')
})
cols = ['A','B', 'C']
m = df[cols].apply(lambda x: x.duplicated())
df[cols]= df[cols].mask(m, '')
print (df)
A B C F
0 1 4 a a
1 5 b a
2 c a
3 d b
4 e b
5 f b
但如果重复的不在第一列,只在第二列或更多列,则得到:
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[1] * 6,
'F':list('aaabbb')
})
cols = ['A','B', 'C']
m = df[cols].apply(lambda x: x.duplicated())
df[cols]= df[cols].mask(m, '')
print (df)
A B C F
0 a 4 1 a
1 b 5 a
2 c a
3 d b
4 e b
5 f b
关于python - 为已被 set_index() 更改的数据帧提供正常索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58322288/
设置: np.random.seed(0) iix = pd.MultiIndex.from_product([['bar', 'baz', 'foo'],['one', 'two']]) df =
我有一个这样开头的 CSV 文件: Year,Boys,Girls 1996,333490,315995 1997,329577,313518 1998,325903,309998 当我将它读入 pa
我在 Julia 数据帧的 python 中寻找类似 .set_index() 的函数。 我搜索并发现 NamedArray 可以给出与 Python 中的 .set_index() 类似的结果,如下
我正在尝试从我的数据框中的列之一设置数据框的索引。这个数据框的旧索引本质上是没有意义的。 但是当我使用 set_index(['Name']) 时,我添加了一个新列,这不是我想要的行为。我找不到解决方
我有一个数据帧数据。分组并重置索引后,我无法将日期列设置为索引。 data = data.groupby('Payment Date ') data['Payment Amount '].sum().
我有一个从 HDFS 上的 parquet 文件创建的 dask 数据框。使用 api: set_index 创 build 置索引时,它失败并出现以下错误。 File "/ebs/d1/agent/
我找不到在 Pandas 0.14 中查找多重索引的方法。这是我遇到问题的一些模拟数据。 代码: row1 = ['red', 'ferrari', 'mine'] row2 = ['blue', '
我有一个看起来像这样的数据框(索引未显示) Time Letter Type Value 0 A x 10 0 B y
从上面,你可以看到我已经将索引设置为“index”。我的期望是能够使用“索引”列来删除行,并且仅使用“Barangay”列作为功能而不是数据框的索引。 如上所示,仍然使用“Barangay”列作为引用
我想用 df.set_index() 函数更改我的 DataFrame 索引列。虽然这提供了一个功能解决方案,但它创建了一个我想摆脱的“额外”行。 df = pd.DataFrame({'A': ['
我有很多大约这种类型的 DataFrame: import pandas as pd import numpy as np x1 = pd.DataFrame(np.vstack((np.random
我有一个如下所示的数据框: Priority RID_solve Prob RID_prob Remarks 0 1 5001 34
我有以下数据框: df = pd.DataFrame({ 'Trader': 'Carl Mark Carl Joe Joe Carl Joe Carl'.split(), 'Product': li
我在我的数据框上运行以下代码函数: del dfname["Unnamed: 0"] dfname["date"] = pd.to_datetime(dfname["date"]) dfname.se
在 Pandas 中,如果我有一个如下所示的 DataFrame: 0 1 2 3 4 5 6 0
我有一个数据框,正在尝试将索引设置为“时间戳”列。目前索引只是一个行号。时间戳格式的一个例子是:2015-09-03 16:35:00 我试过设置索引: df.set_index('Timestamp
假设我创建了一个带有两列的 pandas DataFrame,b(一个 DateTime)和 c(一个整数)。现在我想从第一列 (b) 中的值创建一个 DatetimeIndex: import pa
我有一个看起来像 like this 的数据框: 我想将 'TIME_STAMP_NEW' 列作为索引。当前代码: twoweektable['TIME_STAMP_NEW'] = pd.to_dat
data = [['g1','a',1],['g1','b',2],['g2','b',3],['g2','a',4]] df = pandas.DataFrame(data=data, column
我正在尝试调用 df.set_index,使我设置索引的列的 dtype 是新的 index.dtype。不幸的是,在下面的示例中,set_index 更改了 dtype。 df = pd.DataF
我是一名优秀的程序员,十分优秀!