我有一个正在使用的 Pandas 数据框,我只需要将某个列中大于 800 的所有值除以 100。换句话说,如果“credit_score”列中的值大于 800,则它可以假设输入的数据在小数点左侧有两个额外的位置。例如...
id credit_score column_b column_c
0 750 ... ...
1 653 ... ...
2 741 ... ...
3 65100 ... ...
4 73500 ... ...
5 565 ... ...
6 480 ... ...
7 78900 ... ...
8 699 ... ...
9 71500 ... ...
Run Code Online (Sandbox Code Playgroud)
所以我基本上想将行索引 3、4、7 和 9 的信用评分除以 100,而不是其他。我想要新的、有效的值来替换旧的、无效的值。或者,也可以使用诸如“credit_score_fixed”之类的新列。我对 Python 和 Pandas 还很陌生,所以非常感谢任何帮助。
我正在尝试使用 Python 3 在 Bokeh 中使用带有回调的滑块来过滤我的 ColumnDataSource 对象(源自 DataFrame)的行。更具体地说,如果一个选项为 0 到 10000000(100 万的倍数)的滑块返回的值N是 2000000,那么我希望我的图只显示数据,在这种情况下,美国人口 >= 2000000。下面是我的代码。除了滑块回调之外,一切都按我的意愿工作。
from bokeh.io import curdoc
from bokeh.layouts import layout
from bokeh.models import HoverTool, ColumnDataSource, Select, Slider
from bokeh.plotting import figure
TOOLS='pan,wheel_zoom,box_zoom,reset,tap,save,box_select,lasso_select'
source1 = ColumnDataSource(df[df.winner == 'Democratic'])
source2 = ColumnDataSource(df[df.winner == 'Republican'])
hover = HoverTool(
tooltips = [
('County Name', '@county'),
('Population', '@population'),
('Land Area', '@land_area'),
('Pop. Density', '@density'),
('Winning Party', '@winner'),
('Winning Vote %', '@winning_vote_pct'),
]
)
# Plot
plot = figure(plot_width=800, plot_height=450, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在for循环中动态创建变量名.在下面的设计示例中,我只想为每个股票代码创建一个单独的数据框:
tickers = ['FB', 'AMZN', 'NFLX', 'GOOG']
for ticker in tickers:
'df_' + ticker = pd.read_excel('my_data.xlsx', sheet_name=ticker)
#SyntaxError: can't assign to operator
Run Code Online (Sandbox Code Playgroud)
但是,这似乎有效:
for ticker in tickers:
locals()['df_' + str(ticker)] = pd.read_excel('my_data.xlsx', sheet_name=ticker)
Run Code Online (Sandbox Code Playgroud)
我之前看过这个问题的类似例子,但是答案的范围从dicts到locals,再到setattr.我正在努力学习和理解最恐怖的方法来处理这个问题.我很难从别人的例子中得到理解,而且经常会提出非理想的处理方式.