通过Python的迭代CSV无关输出
感谢您检查我的问题。通过Python的迭代CSV无关输出
我在Windows 7上使用Python 2.7。我的目标是从原始CSV文件中提取一些数据(ErrorCodeHEX)。 这里是原始数据(从CSV文件):
AngleInDegrees,DistInMM,Intensity,ErrorCodeHEX
0,2221,259,0
1,2225,244,0
2,2213,172,0
3,2222,98,0
4,2225,87,0
5,2228,82,0
6,2228,84,0
7,2238,82,0
8,2229,64,0
9,2233,44,0
10,2314,17,0
11,2512,8,0
12,0,0,8035
13,0,0,8035
14,0,0,8035
15,0,0,8035
16,0,0,8035
17,0,0,8035
18,0,0,8003
19,0,0,8035
20,0,0,8035
我想提取ErrorCodeHEX列,使样子:ErrorCodeHEX | 0 | 0 | 0 |...
不过,我从我的Python代码得到包括不相关的数据(0到359):
ErrorCodeHEX
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 8035
13 8035
14 8035
有线是,我试图对“DistInMM”和“强度”列中的类似的代码,它们很好地工作。 (输出只是在一行中的列)
所以我很困惑它为什么不能在'错误'列上工作?
请参阅代码:
高清lds_test(个体经营):
def my_range(start, end, step):
while start <= end:
yield start
start += step
# gain distance info
for i in my_range(1, len(result) - 3, 3):
print result[i]
log.write(result[i] + ',')
result[i] += result[i]
# gain intensity info
for i in my_range(2, len(result) - 3, 3):
print result[i]
log.write(result[i] + ',')
result[i] += result[i]
# gain error info
for i in my_range(3, len(result) - 3, 3):
print result[i]
log.write(result[i] + ',')
result[i] += result[i]
你可以用大熊猫尝试,这将是更快,更容易:
import pandas as pd
df = pd.read_csv('your.csv')
result = "|".join([df.columns[-1]]+map(str, list(df['ErrorCodeHEX'])))
result
输出:
'ErrorCodeHEX|0|0|0|0|0|0|0|0|0|0|0|0|8035|8035|8035|8035|8035|8035|8003|8035|8035'
嗨,小小,谢谢你让我回来。是的,我同意熊猫是一个有用的数据分析包。但由于某种原因,我在安装熊猫后得到了一个ImportError'No module named pandas'。所以现在很困惑...... –
这意味着你安装了不正确的熊猫,你能分享你的完整代码吗?您的上述代码无法定位您的问题。 –
'result'和ho是什么样的对象你是从你的文件中获得它吗?你所展示的代码都不应该产生你描述的不想要的输出,但是我再也看不到它可能产生你想要的输出(你正在写逗号分隔的文本,而不是使用填充的垂直条)。你能澄清一下你的期望和发生了什么吗? – Blckknght