使用Pandas数据框,可将一列的值分配给变量,而将另一变量用作列名

时间:2019-01-27 16:44:56

标签: python pandas

在C#中,我发送的是sys.argv 1

string depVar = "Cover_Type";

在Python中,我试图使用Pandas数据框完成以下任务。下面的示例代码失败...有没有办法做到这一点?

import csv
import pandas as pd    
import sys

dependent_var = sys.argv[1]
df = pd.read_csv('train.csv')
y = df[dependent_var]

编辑 在尝试使细节保持简单的过程中,听起来好像我遗漏了必要的信息(新手错误),所以谢谢您的耐心等待。

(1)以下是数据示例: enter image description here

目标: 我遗漏的最重要的信息(再次抱歉)是我正在从另一个程序传入变量,所以我的目标肯定是使用变量值,而不仅仅是打印出值。

我相信提供的答案之一非常接近,并且实际上回答了我的原始问题。但是它不能解决我的问题,因为传入的变量是一个字符串,我现在正在考虑将其转换为列表,因此需要方括号。

错误:KeyError:“ ['Flower_Type']”

打印列:

Index(['Id', 'Elevation', 'Aspect', 'Slope',
       'Horizontal_Distance_To_Hydrology',
       'Flower_Type'],
      dtype='object')

最终答案:

import csv
import pandas as pd    
import sys

depVar= sys.argv[1] # had to assign the incoming variable to a new variable
a = []
a.append(depVar)

df = pd.read_csv('train.csv')
y = df[a]

2 个答案:

答案 0 :(得分:0)

我相信您需要以下内容:

您需要在url = input("Please enter the url of the file you want to download.") path = input("Please enter the file path ex. C:\Jim\Desktop") file_name = input("Please enter file name") if pdfkit.from_url(str(url), str(path + file_name)): # Check if method from_url returned True print("Sucessfully created pdf from url") else: print("Something went wrong") 中引用列名。

[]

然后

dependent_var = ['Flower_Type']

调试过程:

如果您的csv标头中包含空格,或者您可以调整单元格中任何相对的空格,您可以尝试像y = df[dependent_var] 一样工作。

[['Flower_Type']]

OR:

df.columns = df.columns.to_series().apply(lambda x: x.strip())

或使用此处提到的Byte order mark

df = pd.read_csv('train.csv', encoding="utf-8")

在这种情况下,使用列表理解来去除所有多余的空格可能是有意义的。

df = pd.read_csv('train.csv', encoding="utf-8-sig")

答案 1 :(得分:0)

随便走吧

function buildArray(min, max) {
  return Array.from({ length: max - min + 1 }, (_, i) => min + i);
}

console.log(buildArray(5, 10));

为什么必须将其存储在变量中?