Python 根据其他两列的条件创建新列
我有一个连接的数据帧,它有两个相同的列和两个不同的名称 看起来是这样的:Python 根据其他两列的条件创建新列,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个连接的数据帧,它有两个相同的列和两个不同的名称 看起来是这样的: Fuel Category Gen MW Gen MWh Time Stamp Time Zone Dual Fuel 2809.0 nan 12/09/2015 00:05 EST Hydro 2224.0 nan 12/09/2015 00:05 EST Natural Gas nan
Fuel Category Gen MW Gen MWh Time Stamp Time Zone
Dual Fuel 2809.0 nan 12/09/2015 00:05 EST
Hydro 2224.0 nan 12/09/2015 00:05 EST
Natural Gas nan 150.00 12/09/2016 00:05 EST
Nuclear 4787.0 nan 12/09/2015 00:05 EST
Other Fossil nan 20.0 12/09/2016 00:05 EST
问题是,一个标题被称为Gen-MWh
,另一个标题被称为Gen-MW
,用于不同的时间段。我只想换一个新的栏目,在df['Gen new MW']
=df[Gen MW]
whendf['Gen MWh']='nan'
和=df[Gen MWh]
时填写
我试过:
for i in range(0, len(df)):
if df['Gen MW'].iloc[i] == 'nan':
df['Generation (MW)'].iloc[i] == df['Gen MWh'].iloc[i]
elif df['Gen MWh'].iloc[i] == 'nan':
df['Generation (MW)'].iloc[i] == df['Gen MW'].iloc[i]
但这会反复进行,并且不会产生任何结果
有什么方法可以轻松做到这一点吗?首先使用combine_或@piRsquared建议的fillna
df['Gen New MW'] = df['Gen MW'].combine_first(df['Gen MWh'])
df['Gen New MW']
0 2809.0
1 2224.0
2 150.0
3 4787.0
4 20.0
备选案文2:
df['Gen New MW'] = df['Gen MW'].fillna(df['Gen MWh'])
按照@piRsquared的建议,首先使用combine_或fillna
df['Gen New MW'] = df['Gen MW'].combine_first(df['Gen MWh'])
df['Gen New MW']
0 2809.0
1 2224.0
2 150.0
3 4787.0
4 20.0
备选案文2:
df['Gen New MW'] = df['Gen MW'].fillna(df['Gen MWh'])
或者
df['Gen MW'].fillna(df['Gen MWh'])
@piRSquared,好久不见!是的,一直很忙(:或df['Gen MW'])。fillna(df['Gen MWh'])
@piRSquared,很久了!是的,一直很忙(:我觉得这是一个反复出现的问题。我觉得这是一个反复出现的问题。