我有以下带有随机索引值的DataFrame data:
data
A B 100 0 7 203 5 4 5992 0 10 2003 9 8 20 10 5 12 6 2
我想添加一个带有行号的新列“C”。例如:
A B C 100 0 7 0 203 5 4 1 5992 0 10 2 2003 9 8 3 20 10 5 4 12 6 2 5
quhf5bfb1#
按DataFrame的长度使用numpy.arange:
DataFrame
numpy.arange
df['C'] = np.arange(len(df))
也可以使用DataFrame.shape,谢谢@Mehmet Burak Sayıcı:x一个一个一个一个x一个一个二个x
DataFrame.shape
3z6pesqy2#
通过使用reset_index
reset_index
df['C'] = df.reset_index().index df A B C 100 0 7 0 203 5 4 1 5992 0 10 2 2003 9 8 3 20 10 5 4 12 6 2 5
概括而言:
df['C'] = df.index if df.index.is_monotonic_increasing else range(len(df)) df A B C 100 0 7 0 203 5 4 1 5992 0 10 2 2003 9 8 3 20 10 5 4 12 6 2 5
b5buobof3#
我们可以添加新的列,将行号作为第一列,如下所示:
import pandas as pd import numpy as np df = pd.DataFrame({'B': [1, 2, 3], 'C': [4, 5, 6]}) B C 0 1 4 1 2 5 2 3 6 df.insert(loc=0, column='A', value=np.arange(len(df))) A B C 0 0 1 4 1 1 2 5 2 2 3 6
qni6mghb4#
你不需要numpy来实现与上一个答案相同的结果:
df.insert(loc=0, column="A", value=df.reset_index().index)
lf3rwulv5#
无 numpy 空头期权
df['C'] = range(len(df))
如果要对行号进行分组
df['C'] = df.groupby('A').cumcount()
5条答案
按热度按时间quhf5bfb1#
按
DataFrame
的长度使用numpy.arange
:也可以使用
DataFrame.shape
,谢谢@Mehmet Burak Sayıcı:x一个一个一个一个x一个一个二个x
3z6pesqy2#
通过使用
reset_index
概括而言:
b5buobof3#
我们可以添加新的列,将行号作为第一列,如下所示:
qni6mghb4#
你不需要numpy来实现与上一个答案相同的结果:
lf3rwulv5#
无 numpy 空头期权
如果要对行号进行分组