use*_*374 3 python indexing digits pandas
我需要为 daframe 的每一行获取存储在另一个索引(或 reset_index() 之后的列)中的数字的前两位数字。我该怎么做?
我的数据框:
value
index1
110202 1
223168 5
850484 2
298008 3
950000 6
113500 6
849464 2
849616 10
Run Code Online (Sandbox Code Playgroud)
我想获得即:
value
index1 new_value
110202 11 1
223168 22 5
850484 85 2
298008 29 3
950000 95 6
113500 11 6
849464 84 2
849616 84 10
Run Code Online (Sandbox Code Playgroud)
假设index1是df你可以做的索引:
df['new_value'] = df.index.astype(str).str[:2]
print(df)
Run Code Online (Sandbox Code Playgroud)
输出
value new_value
index1
110202 1 11
223168 5 22
850484 2 85
298008 3 29
950000 6 95
113500 6 11
849464 2 84
849616 10 84
Run Code Online (Sandbox Code Playgroud)
基本上将列转换为字符串列,然后使用str访问器获取前两个字符。有关处理文本数据的更多信息,请参见此处。
作为替代方案,您可以重置索引并访问index1列,例如:
df = df.reset_index()
df['new_value'] = df['index1'].astype(str).str[:2]
print(df.set_index(['index1', 'new_value']))
Run Code Online (Sandbox Code Playgroud)
输出
value
index1 new_value
110202 11 1
223168 22 5
850484 85 2
298008 29 3
950000 95 6
113500 11 6
849464 84 2
849616 84 10
Run Code Online (Sandbox Code Playgroud)
请注意,在这个替代解决方案中,我将索引设置为列new_value和index1.