我需要有条件地设置 Dataframe 中特定列的每一行的值。如果满足条件,则应根据列表中提供的变量更改特定单元格,否则应保持原样。请找到下面的脚本。当前脚本设置所有值。
非常感谢
import pandas as pd
df = pd.DataFrame({'Name': ['A', 'B', 'C', 'D'],
'Functions': [1000, 2000, 3000, 5000],
'value': [5, 6, 7, 8],
'Shape': ['Round', 'Round', 'Round', 'Round']})
x1 = 500
x2 = 700
x3 = 800
x4 = 900
x = [x1, x2, x3]
for index,row in df.iterrows():
if row['Functions'] <= 2200:
df.at[0, 'Functions']=x1
df.at[1, 'Functions']=x2
df.at[2, 'Functions']=x3
df.at[3, 'Functions']=x4
2条答案
按热度按时间bkhjykvo1#
如果列表具有相同长度,如DataFrame中的行数,则可以使用筛选列表和集合的值来简化解决方案:
但如果需要按指数设置值,请使用:
ippsafx72#
也许您可以使用
numpy.where()``np.where(df['Functions']<=2200, x, df['Functions'])