0

我有一个像 df 这样的数据框

      Cards                   Height                    State Hash
0    1615427359331  ...         1945  3NK38AjJUMDcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...
0    1615427359331  ...         1952  3NK38AjJUMvcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...
0    1615427359331  ...         1958  3NK38AjJUMDhEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...
0    1615427359331  ...         1952  3NK38AjJUMDcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...
0    1615427359331  ...         1957  3NK38AjJUMhDcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT..

我已经计算了数据框中最常出现的状态哈希值和高度的中位数

使用这两个计算值,我如何创建一个新列 ON/OFF。并将值设置为 1 或 0。如果这两个计算值匹配,则将设置值 1,否则将值设置为 0。如何使用 Pandas 数据框执行此操作?请帮忙。谢谢!

**编辑:**这是我迄今为止尝试过的

if [(dataframe['Block Height'] == median_highest_blocklen_recievd) & (dataframe['State Hash'] == most_commonrec_stat_hash)]:
    dataframe['online/offline'] = 1
if [(dataframe['Block Height'] != median_highest_blocklen_recievd) | (dataframe['State Hash'] != most_commonrec_stat_hash)]:
    dataframe['online/offline'] = -1

这给了我数据框

      Cards                   Height                    State Hash   Online/Offline
                                                      
0    1615427359331  ...         1945  3NK38AjJUMDcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...    -1
0    1615427359331  ...         1952  3NK38AjJUMvcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...    -1
0    1615427359331  ...         1958  3NK38AjJUMDhEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...    -1
0    1615427359331  ...         1952  3NK38AjJUMDcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT...    -1
0    1615427359331  ...         1957  3NK38AjJUMhDcEkPVaTWKsMcccUWXywgpMRseaNNPz6gyhT..    -1
4

2 回答 2

1

我不太确定你的用例是什么,但你肯定想在哪里使用 numpy

例如:

df['ON/OFF'] = np.where((df['Height']==median_height) & (df['State Hash']==mode_hash),1,0)

于 2021-03-12T14:24:06.107 回答
1

一种方法是使用 apply:

df['New'] = df.apply(lambda x: 1 if x['Height'] == median_height and x['State Hash'] == calculated_hash else 0, axis = 1)
于 2021-03-12T14:30:57.010 回答