我的pandas数据框看起来像这样:
Person ID ZipCode Gender
0 12345 882 38182 Female
1 32917 271 88172 Male
2 18273 552 90291 Female
Run Code Online (Sandbox Code Playgroud)
我想复制每一行3次,如:
Person ID ZipCode Gender
0 12345 882 38182 Female
0 12345 882 38182 Female
0 12345 882 38182 Female
1 32917 271 88172 Male
1 32917 271 88172 Male
1 32917 271 88172 Male
2 18273 552 90291 Female
2 18273 552 90291 Female
2 18273 552 90291 Female
Run Code Online (Sandbox Code Playgroud)
当然,重置索引所以它是:
0
1
2
Run Code Online (Sandbox Code Playgroud)
我尝试过如下解决方案:
pd.concat([df[:5]]*3, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
和:
df.reindex(np.repeat(df.index.values, df['ID']), …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Pandas 在我的数据框中添加一个包含一些值的新列,并让它重复相同的值,直到它到达索引的末尾:
我试过了:
df['Fruit Type']=['Bananas','Oranges','Strawberries']
它说:
ValueError: length of values does not match length of index
**我的索引大约有 8000 行,因此索引与新列值的数量不匹配
我希望该列看起来像:
Fruit Type:
Bananas
Oranges
Strawberries
Bananas
Oranges
Strawberries
Bananas
Oranges
Strawberries
一段时间后我找到了解决方案:
df.insert(0, 'Fruit Type', ['Bananas', 'Oranges','Strawberries']*int(((len(df))/3)))
0 代表列号,然后是列名,然后是列值。*int... 将索引除以 3 并重复该数量的值。感谢@acai 最后的乘数