【发布时间】:2017-06-03 22:57:00
【问题描述】:
我有一个 Pandas 数据框,其中索引是参与社会学测试的受访者的数字主题 ID。
基本上,这个问题有两个方面。
一)。如何重命名 Pandas DataFrame 中的单个重复索引?
部分数据如下(第一列为索引):
subject build gender_response
7 5.0.6.0 Female
5 5.0.6.0 Male
4 5.0.6.0 Male
3 5.0.6.0 Female
3 5.0.6.0 Female
1 5.0.6.0 Male
例如,我只需要将索引之一(“3”)重置为任何其他整数。
我已经尝试了 pandas 文档中的主要功能 - http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.rename.html 但是,如果我将参数“Inplace”设置为 True,则没有任何反应:
master.iloc[3].rename(120, inplace=True)
如果我创建一个新变量并使用不带此参数的相同表达式,它将返回一个带有新索引的 Pandas.Series:( 但我需要将其应用于新数据帧。
master2 = master.iloc[3].rename(120)
b)。如何以其他列中的值为条件进行更改?
subject time Gender Age
7 12:30:10 Female 23
5 12:23:10 Male 18
4 12:22:17 Male 36
3 12:16:55 Female 45
3 12:16:16 Female 67
1 12:05:22 Male 28
例如,我有“时间”列进行了测试。我试图通过 Pandas 应用函数来做到这一点,比如:
time_point = pd.Timestamp(1/19/2017 12:16:55)
def filter_by_time(x):
if x[time] == Timestamp:
x.index.rename(120)
将其应用于数据框的行。
想法?
【问题讨论】:
-
刚刚注意到最后一段代码有错误。
-
time_point = pd.Timestamp(1/18/2017 12:16:55) def filter_by_time(x): if x[time] == time_point: x.index.rename(120)跨度>
-
您应该编辑您的问题以修正错误。
-
另外,这是两个不同的问题。您可以拆分您的问题,即发布两个单独的问题吗?这就是它在 SO 上的工作方式。
-
rename在索引上分配或更改名称属性,它不会更改标签,现有索引标签重要吗?例如,如果没有,你可以打电话给reset_index(drop=True, inplace=True)