【发布时间】:2021-11-09 04:56:19
【问题描述】:
这里的第一篇文章寻求我无法解决的解决方案。我本质上是在尝试迭代熊猫数据框而不覆盖以前的数据框。目前,我有获取第一个实例但无法迭代下一组“值”的代码。见下文。非常感谢任何帮助!
import pandas as pd
import numpy as np
# load csv data
data = pd.read_csv(r"C:\Users\Admin\Desktop\data.csv")
# convert csv data to pandas dataframe
df = pd.DataFrame(data, columns = ["Date", "B1", "B2", "B3", "B4", "B5"]
主代码:
for n in range(1,10):
df[n] = pd.Series(["X" if df.iat[x,y] == n else "" for y in range(1,6) for x in range(0,4)])
输出表不正确:
| Date | B1 | B2 | B3 | B4 | B5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8/22/19 | 2 | 3 | 38 | 39 | 40 | X | |||||||
| 8/25/19 | 5 | 8 | 16 | 20 | 25 | X | |||||||
| 8/27/19 | 3 | 4 | 19 | 35 | 39 | X | |||||||
| 8/29/19 | 1 | 2 | 6 | 15 | 19 | X |
正确的输出表:
| Date | B1 | B2 | B3 | B4 | B5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8/22/19 | 2 | 3 | 38 | 39 | 40 | X | X | ||||||
| 8/25/19 | 5 | 8 | 16 | 20 | 25 | X | X | ||||||
| 8/27/19 | 3 | 4 | 19 | 35 | 39 | X | X | ||||||
| 8/29/19 | 1 | 2 | 6 | 15 | 19 | X | X | X |
我希望这是有道理的。谢谢!! :)
【问题讨论】:
-
你能解释一下你到底想要做什么吗?
-
欢迎您。请尝试生成mcve
-
一个潜在问题:您正在遍历整个 4x5 的原始 DataFrame,但您创建的每个新列只有 4 行可用 - 这意味着您要为新列分配 20 个值只有 4 行
-
n 列是数字,而 B1-B5 是乐透数据集的中奖号码。寻找识别中奖号码的代码到 n 列的新表中以供以后使用。 n 列实际上是 52,但为了这篇文章,我减少了列