使用数据框中的多索引值创建哈希
Create an hash using multi-index values in dataframe
假设我们有以下数据框:
>> df = pd.DataFrame(
columns = ['Film', 'Rating', 'Name'],
data=[['Alien', 9, 'Jane'], ['Alien', 7, 'Mark'],
['LOTR', 8, 'Jack'], ['LOTR', 6, 'John']])
>> df.set_index(['Film', 'Rating'])
Name
Film Rating
Alien 9 Jane
7 Mark
LOTR 8 Jack
6 John
我想使用多索引值创建一个散列列,如下所示:
Name hash
Film Rating
Alien 9 Jane Alien/9
7 Mark Alien/7
LOTR 8 Jack LOTR/8
6 John LOTR/6
试过这个:
df['hash'] = df.apply(lambda x: '/'.join(x.index), axis = 1)
但 x.index
指的是数据帧索引,而不是第一行,所以我实际上被卡住了。此外,我不确定是否可以连接 int
和 str
值。
编辑:更清楚地说,我需要一些即使我有更长的多索引(3+ 列)并且里面有 int
类型也能工作的东西。
尝试:
df["hash"] = (
df.index.get_level_values(level=0)
+ "/"
+ df.index.get_level_values(level=1)
)
print(df)
打印:
Name hash
Film Rating
Alien 9 Jane Alien/9
7 Mark Alien/7
LOTR 8 Jack LOTR/8
6 John LOTR/6
或者:
df["hash"] = df.index.map("/".join)
print(df)
假设我们有以下数据框:
>> df = pd.DataFrame(
columns = ['Film', 'Rating', 'Name'],
data=[['Alien', 9, 'Jane'], ['Alien', 7, 'Mark'],
['LOTR', 8, 'Jack'], ['LOTR', 6, 'John']])
>> df.set_index(['Film', 'Rating'])
Name
Film Rating
Alien 9 Jane
7 Mark
LOTR 8 Jack
6 John
我想使用多索引值创建一个散列列,如下所示:
Name hash
Film Rating
Alien 9 Jane Alien/9
7 Mark Alien/7
LOTR 8 Jack LOTR/8
6 John LOTR/6
试过这个:
df['hash'] = df.apply(lambda x: '/'.join(x.index), axis = 1)
但 x.index
指的是数据帧索引,而不是第一行,所以我实际上被卡住了。此外,我不确定是否可以连接 int
和 str
值。
编辑:更清楚地说,我需要一些即使我有更长的多索引(3+ 列)并且里面有 int
类型也能工作的东西。
尝试:
df["hash"] = (
df.index.get_level_values(level=0)
+ "/"
+ df.index.get_level_values(level=1)
)
print(df)
打印:
Name hash
Film Rating
Alien 9 Jane Alien/9
7 Mark Alien/7
LOTR 8 Jack LOTR/8
6 John LOTR/6
或者:
df["hash"] = df.index.map("/".join)
print(df)