我有一个2毫米的数据帧。我有一个问题,在用分隔符拆分一个列之后,似乎没有一致数量的列合并到这个拆分中
为了解决这个问题,我尝试使用一个有条件的新列C,其中,如果条件为true,则应等于列a。如果为false,则设置为等于列B
编辑:在尝试提供的解决方案时,我尝试了下面列出的一些代码,但没有更新任何行。下面是我正在使用的数据集的一个更好的示例:
Scenario meteorology time of day
0 xxx D7 Bus. Hours
1 yyy F3 Offshift
2 zzz Bus. Hours NaN
3 aaa Offshift NaN
4 bbb Offshift NaN
前两排排列整齐。场景、气象学和时间已从合并列中正确分割出来。然而,在其他行上,合并列没有气象学数据。因此,“一天中的时间”数据填充在“气象学”中,导致“一天中的时间”为nan
以下是建议的方法:
from dask import dataframe as dd
ddf = dd.from_pandas(df, npartitions=10)
ddf[(ddf.met=='Bus. Hours') | (ddf.met == 'Offshift')]['time'] = ddf['met']
ddf[(ddf.met=='Bus. Hours') | (ddf.met == 'Offshift')]['met'] = np.nan
这不会更新“time”或“met”中的相应行
我也尝试过在熊猫身上这样做:
df.loc[(df.met == 'Bus.Hours') | (df.met == 'Offshift'), 'time'] = df['met']
df.loc[(df.met == 'Bus.Hours') | (df.met == 'Offshift'), 'met'] = np.nan
这种方法可以运行,但似乎无限期地挂起
工作解决方案根据评论进行了修改,结果如下:
尝试,并计算时间,毕竟
print(ddf.head(10))
以查看输出相关问题 更多 >
编程相关推荐