- 我需要忽略时间戳并通过这种方式循环行
import pandas as pd
import numpy as np
time = ['11:50', '12:50', '13:50']
data_1 = {'time': time,
'n1': [1, 5, 8],
'n2': [2, 6 ,7],
'n3': [3, 7 ,6],
'n4': [4, 8, 5],
}
df1 = pd.DataFrame(data = data_1)
df1
我正在尝试乘法:
- row 1 * (10^0)
- 第2行* (10^1)
- 第3行* (10^2)
- …
- row n * (10^(n-1))
:
<表类>时间 n1 n2 n3 陶瓷 tbody><<tr>0 12日 1 2 3 4 1中午 2十三50 8 7 6 5 表类>
5
6
7
8
您可以在索引轴上使用mul
:
df1.iloc[:, 1:] = df1.iloc[:, 1:].mul(10**df1.index, axis=0)
print(df1)
# Output
time n1 n2 n3 n4
0 11:50 1 2 3 4
1 12:50 50 60 70 80
2 13:50 800 700 600 500
如果索引不是RangeIndex
,可以用np.arange(len(df1))
代替df1.index
。
您可以尝试使用这个也numpy广播和get_indexer
,
df1.iloc[:, 1:] *= 10**df1.index.get_indexer(df1.index)[:, None]
df1
输出time n1 n2 n3 n4
a 11:50 1 2 3 4
b 12:50 50 60 70 80
c 13:50 800 700 600 500
适用于无标准唯一索引:
df,
time = ['11:50', '12:50', '13:50']
data_1 = {'time': time,
'n1': [1, 5, 8],
'n2': [2, 6 ,7],
'n3': [3, 7 ,6],
'n4': [4, 8, 5],
}
df1 = pd.DataFrame(data = data_1, index=[*'abc'])
df1