【发布时间】:2019-08-26 08:31:36
【问题描述】:
根据评论编辑
背景:这是当前数据框的样子。行标签是原始 excel 文件中的信息文本。但我希望这种小的数据复制足以解决问题?实际文件大约有 100 列和 200 行。
列标题和第 0 行值以如下所示的模式重复 - 除了 Sales 或 Validation 文本在每次出现具有现有标题的列时都会更改。
在销售之前多一列,每行都有文字。为此测试完成的 X 映射。不幸的是,没有找到优雅的方式来显示文本作为下面输出的一部分。
Sales Unnamed: 2 Unnamed: 3 Validation Unnamed: 5 Unnamed: 6
0 Commented No comment Commented No comment
1 x x
2 x x
3 x x
预期输出:将 X 替换为 0、1 和 2,具体取决于它们所在的列(已评论/无评论)
Sales Unnamed: 2 Unnamed: 3 Validation Unnamed: 5 Unnamed: 6
0 Commented No comment Commented No comment
1 0 1
2 2 0
3 1 2
可能的代码:我假设循环看起来像这样:
while in row 9:
if column value = "commented":
replace all "x" with 1
elif row 9 when column valkue = "no comment":
replace all "x" with 2
else:
replace all "x" with 0
但作为一个 python 新手,我不确定如何将其转换为工作代码。感谢所有支持和帮助。
【问题讨论】:
-
亲爱的@Erfan,感谢您的评论。我是 python、pandas 和 SO 的新手。不知道如何使用 Xs(图 1)重新创建映射的 DF 作为可复制粘贴的数据。我可以想象具有唯一文本字符串和标题列的数据会更容易。以前我被鼓励分享我的 DF 的图像,我在这里使用了相同的方法。如果您知道更好的方法,我很乐意学习。
-
要问一个好问题,所有问题都在@Erfan提供的链接中进行了解释,基本上这个想法是根据结构使用头部或/和尾部或/和样本给出数据帧的样本DataFrame(有时所有行看起来都一样,有时有某种顺序)。然后您可以将其打印出来并复制到 stackoverflow 上,以便我们可以使用它。此外,您应该打印您提供的特定 DataFrame 的预期输出作为人们的输入,以查看他们是否给您带来了良好的结果。
-
如果你在
pd.DataFrame()中放了我们可以复制粘贴的数据,我们复制它就足够了,但是你应该让它作为一个表格出现在stackoverflow 上让我们看到它。这个想法是是否像这样打印它print(df.to_string())并在堆栈溢出时复制粘贴输出,或者如果你在本地运行它,运行df.to_clipboard()并将它粘贴到stackoverflow上(它会自动复制df以便你可以粘贴它)。然后我们可以通过pd.read_clipboard()复制它,或者如果您也给了我们pd.DataFrame(data),请运行您的代码。 -
@SmileyProd,我不知道可以将粘贴输出复制到此处提出的问题。感谢您提供有用的意见。将尝试看看如何将其添加到问题中并进行相应的修改。
-
@Erfan,现在改版更好了吗?
标签: python-3.x pandas dataframe