我在看一些水电站和水库两个数据帧分离的数据。在
东风加油站、东风水库
Name Size Number R_Name R_Size R_number
A 20 1 W 200 2
B 30 2 X 300 4
C 30 3 Y 150 2
D 35 4 Z 100
“编号”和“Rå编号”列都参考了发电站,så水库“X”与4号发电站相连,因为它们具有相同的编号。我想把这些数据帧合并成一个,其中对应的数据在同一行上。有些电台有几个水库(有些没有),对于这些我想要一个清单,其中的信息,我已经试图在下面显示。在
df_组合
^{pr2}$我已经开发了一个最小的工作示例(我为糟糕的PEP道歉)
import pandas as pd
df_powerstations = pd.DataFrame([['A', 20,1],['B',30,2],['C',30,3],['D',35,4]], columns=['Name','Size','Number'])
df_reservoirs = pd.DataFrame([['W', 200, 2],['X', 300, 4],['Y',150,2],['Z',100, '']], columns=['R_name', 'R_size', 'R_Number'])
R_cols = df_reservoirs.columns.values.tolist()
df_combined = pd.concat([df_powerstations, pd.DataFrame(columns=R_cols)]) # type: pd.DataFrame
for ps_ind, ps_num in enumerate(df_combined['Number']):
for r_ind, r_ps_num in enumerate(df_reservoirs['R_Number']):
if ps_num == r_ps_num:
df_combined.loc[ps_ind, R_cols] = df_reservoirs.loc[r_ind, R_cols].copy()
这段代码将给我最后一个带有匹配编号的库,因此只有Y代表B站。我尝试使用append,但这既没有错误也没有结果(我不再有那个代码)。在
最好的解决方案是先列出列表,然后再生成数据帧吗?在
{1>这里使用
细节
^{pr2}$相关问题 更多 >
编程相关推荐