【发布时间】:2017-10-05 22:15:20
【问题描述】:
我正在尝试导入一个 csv 文件,该文件有两列:Bachelor's 和 Master's。我想将每个专业的专业分配给一个代表学生级别(学士或硕士)和专业(例如商业)的字符串。
这个 CSV 文件是这样写的:
Bachelor's Master's
SBS O
H O
H 0
H O
... ...
这是由两个单独的列组成的。 我一直在使用以下代码:
Major_Proper = ['Business', 'Computer Sciences and
Engineering','Education','Humanities','Natural Sciences and
Mathematics','Other']
Degree = {"Bachelor's":['B','CSE','E','H','NSM','O'],"Master's":['B','CSE','E','H','NSM','O']}
Major = ['B','CSE','E','H','NSM','O']
b_b = m_b = []
b_cse = m_cse = []
b_e = m_e = []
b_nsm = m_nsm = []
b_sbs = n_nsm = []
b_o = m_o = []
bach = []
mast = []
with open('Majors.csv') as f:
data = f.read().replace('\n',"")
df = pd.read_csv('Majors.csv', header=None, names=["Bachelor's", "Master's"])
for x in range(0,len(bach)):
if x == Major[0]:
b_b.append(x)
if x == Major[1]:
b_cse.append(x)
if x == Major[2]:
b_e.append(x)
if x == Major[3]:
b_nsm.append(x)
if x == Major[4]:
b_sbs.append(x)
if x == Major[5]:
b_o.append(x)
for x in range(0,len(mast)):
if x == Major[0]:
m_b.append(x)
if x == Major[1]:
m_cse.append(x)
if x == Major[2]:
m_e.append(x)
if x == Major[3]:
m_nsm.append(x)
if x == Major[4]:
m_sbs.append(x)
if x == Major[5]:
m_o.append(x)
print(df)
print(len(bach),len(mast))
但我的猜测是数据会吐出一条长线,如下所示:
Bachelor's Master's
Bachelor's Master's NaN NaN NaN
SBS O NaN NaN NaN
H O NaN NaN NaN
B NaN NaN NaN
O NaN NaN NaN
...
[101 行 x 2 列]
2 2
行。
如您所见,一些值被跳过。还制作了另外三个专栏。
同样,应该只有 100 行,因为第一行是标题。而bach(本科)和mast(硕士)的长度应该都是100,而不是2。
非常感谢任何帮助。
【问题讨论】:
标签: python csv import multiple-columns