Pandas DataFrame 中取单个值的读取和修改

取DataFrame里面某个位置的值

知道index的时候:

# 这里用index做循环,去每一行某一列的值,直接用 df.loc[index][column name] 即可
for j in raw.index:
    chs_map = china_map[china_map['city_name']==raw.loc[j]['MAP_CITY']]
    sjz_map = china_map[china_map['prv_name']==raw.loc[j]['MAP_PRV']]

不知道index的时候

# 这里取某一行某一列的值,得用函数,要么出来的是一个列表而非对应位置的值
for j in raw['city'].unique()
    chs_map = china_map[china_map['city']==j]['MAP_CITY'].max()
    sjz_map = china_map[china_map['city']==j]['MAP_PRV'].max()

修改对应位置的值

知道index 和列名的时候

data2.loc[3,'hhd'] = 0

不知道index 根据条件修改的时候

#      多个条件, 与或非 找到对应的行, 后面要改的列,最后填值
HD.loc[(HD['STATUS']=='a'|(HD['STATUS']=='b'),'FLAG']=1

所有查询

df[row_start_index, row_end_index] 查对应行

df[0:]	#第0行及之后的行,df的全部数据
df[:2]	#第3行之前的数据不包含第三行 左开右闭
df[0:1]	#第0行
df[1:3] #第2行到第3行(不含第4行)
df[-1:] #最后一行
df[-3:-1] #倒数第3行和倒数第2行,因为没有-0,所以没有最后一行

df.loc[index,column] (使用索引值)

data2.loc['a','segments_name']  #  上面提到的直接取值
data2.loc['a',['segments_name','cnt_case_with_segment']] # 一行两列转置成个列表
data2.loc['a':'c',['segments_name','cnt_case_with_segment']]	 #选取第1行到第3行的数据, 这里面是全闭区间 这里生成dataframe

data.loc[data['gender']=='m','name'] 	 #选取gender列是m,name列的数据
data.loc[data['gender']=='M',['name','age']] #选取gender列是m,name和age列的数据

loc 修改

df.loc['a','name'] = 'aa' #修改index为‘a’,column为‘name’的那一个值为aa。
df.loc['a'] = ['bb','ff',11] #修改index为‘s’的那一行的所有值。
df.loc['a',['name','age']] = ['bb',11]    #修改index为‘a’,column为‘name’的那一个值为bb,age列的值为11。

iloc[row_index, column_index] (使用索引位置)

data2.iloc[0,0]		#第1行第1列的数据
data2.iloc[1,2]		#第2行第3列的数据
data2.iloc[[1,3],0:2]#第2行和第4行,从第1列到第2列(左闭右开不包含第3列)的数据
data2.iloc[1:3,[1,2]]	#第2行到第3行(不包含第1,4行),第2列和第3列的数据

iloc 修改

df.iloc[1,2] = 19   #修改一无素
df.iloc[:,2] = [11,22,33] #修改一整列
df.iloc[0,:] = ['lily','F',15] #修改一整行

.at .iat .ix

#at函数(使用索引值访问单个元素)
df.at['a','A']
#iat函数(使用索引位置访问单个元素)
df.iat[0,0]
#ix函数(loc与iloc的混合) 切片索引+普通索引同时使用时候的交叉索引
df.ix[0:2,'A':'C']
  • 14
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用pandas的loc或iloc方法来读取dataframe的某些列。例如,假设我们有一个名为df的dataframe,其中包含三列'A'、'B'和'C',我们想要读取'A'和'C'列,可以使用以下代码: ``` df.loc[:, ['A', 'C']] ``` 或者 ``` df.iloc[:, [, 2]] ``` 其中,loc方法使用列名来选择列,iloc方法使用列的索引来选择列。在这两种方法中,':'表示选择所有行。 ### 回答2: 使用pandas读取dataframe的某些列可以通过以下步骤实现。 首先,我们需要导入pandas库,并使用`read_csv()`方法读取一个csv文件,并将其存储为一个dataframe对象。例如,我们将文件路径指定为`file_path`,可以使用以下代码读取csv文件: ```python import pandas as pd # 读取csv文件并存储为dataframe对象 df = pd.read_csv(file_path) ``` 接下来,如果我们只想保留某些列,可以使用`[]`操作符来选择这些列。例如,假设我们只想保留dataframe中的"name"列和"age"列,可以使用以下代码: ```python # 选择指定的列,并将其存储为一个新的dataframe对象 selected_columns = ['name', 'age'] new_df = df[selected_columns] ``` 这样,新的dataframe对象`new_df`将仅包含"dataframe"中的"name"列和"age"列。 另外,如果我们只对某些特定行感兴趣,可以使用`loc`或`iloc`方法。例如,假设我们只想选择前10行的"name"列和"age"列,可以使用以下代码: ```python # 使用loc方法选择指定的行和列,并将其存储为一个新的dataframe对象 selected_rows = df.loc[:9, selected_columns] ``` 这样,新的dataframe对象`selected_rows`将只包含"dataframe"中前10行的"name"列和"age"列。 总而言之,使用pandas读取dataframe的某些列可以通过选择指定的列和行来实现。 ### 回答3: 在pandas中,可以使用下列方法读取dataframe中的某些列。 使用单个列名 可以使用单个列名来读取单列。例如,如果我们有一个名为df的dataframe,其中包含列名为column1和column2的两列,我们可以使用以下代码来读取其中的一列: ```python column1_data = df['column1'] ``` 使用多个列名 如果我们想要读取多个列,可以将列名放在一个列表中。例如,如果我们想要读取column1和column2这两列,我们可以使用以下代码: ```python columns_data = df[['column1', 'column2']] ``` 此时,返回的是一个新的dataframe,其中只包含指定的列。 使用索引 除了使用列名,我们也可以使用列的索引来读取列。dataframe中的列索引从0开始。例如,如果我们想要读取第一列,可以使用以下代码: ```python column_data = df[df.columns[0]] ``` 此时,返回的是一个包含指定列的Series。 注意:如果我们使用单个列名来读取数据,返回的是一个Series对象;如果我们使用多个列名来读取数据,返回的是一个dataframe对象。 这是使用pandas读取dataframe某些列的方法。根据实际需求选择适合的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值