【发布时间】:2021-07-06 15:17:51
【问题描述】:
我有一个包含多个列的 CSV 文件,我想编写一个代码来读取名为 'ARPU 平均 6 个月 w/t 漫游和折扣' 的特定列,然后创建一个新的名为“Logical”的列将基于 numpy.where()。这是我目前得到的:
csv_data = pd.read_csv("Results.csv")
data = csv_data[['ARPU average 6 month w/t roaming and discount']]
data = data.to_numpy()
sol = []
for target in data:
if1 = np.where(data < 0, 1, 0)
sol.append(if1)
csv_data["Logical"] = [sol].values
csv_data.to_csv ('Results2.csv', index = False, header=True)
这个循环不正确并且不起作用。它不会为每一行创建具有相应值的新列。明确一点:如果列中的值大于0,则记录“1”,否则记录“0”。解决方案可以是任何方式(也不需要 np.where(),也不需要循环)
它实际上是一个包含数据的大文件,我已经突出显示了我们使用的列。代码需要检查列中是否有大于 0 的值,并在新列中返回 1 或 0(如我在问题中所述)
【问题讨论】:
-
csv_data['Logical'] = np.where(csv_data['ARPU average 6 month w/t roaming and discount'] > 0, 1, 0)或者只是做csv_data['Logical'] = (csv_data['ARPU average 6 month w/t roaming and discount'] > 0).astype(int) -
@It_is_Chris 我可以要求展示如何在代码中实现它,因为我已经尝试过这个版本但仍然无法工作?也许我做了一些不正确的事前/事后工作。谢谢!