[英]How to create indexed column names and in a loop in Pandas?
我正在尝试为我的数据框(df)制作列名,例如
>> 'Frequency','molecule1','molecule2',.....'molecule18'
并将“频率”设为索引 但是,我的代码不起作用。 代码中已经设置了变量 min、max 和 columnNum 我应该如何修复它?
df=pd.DataFrame({'Frequency': np.arange(min,max+1)},
columns=['Frequency','molecule{}'.format(x+1) for x in range(int(columnNum/2))]])
df.set_index('Frequency', inplace=True)
您需要为分子创建一个空数据集,并且可以单独创建索引:
import pandas as pd
import numpy as np
my_min = 10
my_max = 15
ncols = 5
frequency = pd.Series(np.arange(my_min, my_max+1), name="frequency")
nrows = len(frequency)
data = np.full(shape=(nrows, ncols), fill_value=np.nan)
df = (pd.DataFrame(data, index=frequency)
.rename(columns=lambda col: col+1) # columns are currently 0, 1, 2... increase them all by 1 to become 1, 2, 3...
.add_prefix("Molecule") # add "Molecule" to the beginning of each column name
print(df)
Molecule1 Molecule2 Molecule3 Molecule4 Molecule5
frequency
10 NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN
12 NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN
14 NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.