如果下面的条件是有效的,我想学习如何用Python编写一个循环来打印单词数。
# sys.setdefaultencoding() does not exist, here!
import sys
reload(sys) # Reload does the trick!
sys.setdefaultencoding('UTF8')
import tushare as ts
import pandas as pd
df = ts.get_tick_data('002428','2015-03-02')
df.head(10)
for volume in df:
if volume = 777:
print "buy signal"
elif volume = 12345:
print "wait and see"
else:
print "nothing"

好像不起作用。我希望所有过滤后的数据都能以熊猫数据格式存储。
发布于 2015-03-02 21:51:15
正如Reut提到的,您需要使用'==‘而不是'=’来进行比较。也是循环
for volume in df:
do stuff循环遍历数据帧中的列。如果要循环遍历列中的值,请执行以下操作:
for i in df['volume']:
do stuff如果要将结果存储在数据框架中,我将定义一个函数,然后将其应用于数据框架,如下所示:
def my_func(volume):
if volume == 777:
return "buy signal"
elif volume == 12345:
return "wait and see"
else:
return "nothing"
df['type'] = df.volume.apply(my_func)最后一步,如果要将其过滤为仅“购买信号”行,请执行以下操作:
new_df = df[df['type'] == 'buy_signal']发布于 2015-03-02 21:45:55
要比较项,请使用比较运算符(==),而不是赋值运算符(=),也就是注释中提到的@EdChum,您将迭代这些列。若要迭代列,请使用df[column_name]
for volume in df['volume']:
if volume == 777:
print "buy signal"
elif volume == 12345:
print "wait and see"
else:
print "nothing发布于 2015-03-02 21:51:35
使用==,而不是=。你不会像你想的那样在df上循环。您只需遍历这些列,就需要遍历这些行。
for index in df.index:
volume = df.loc[index,'volume']
if volume == 777:
print index, volume, "buy signal"
elif volume == 12345:
print index, volume, "wait and see"
else:
print index, volume, "nothing"https://stackoverflow.com/questions/28819982
复制相似问题