![](/img/trans.png)
[英]how to know row name and column name of a specific value in a dataframe by python?
[英]Python Change Dataframe Value in Specific Column And Row
for column in data: if(data[column].name.= 'blabla' and data[column]:name:= 'otherblabla'): for row_value in data[column]. if type(row_value) == str. float_format = row_value,replace('.',''),replace('.'.',') row_value = row_value.replace(row_value, float_format)
float 格式:将字符串“12.323,03”转换为“12323.03”。 但行值不受影响。 我错过了什么?
要影响新值,您必须使用
df.loc[row_index,column_name] = row_value
为此,请尝试枚举。
对于 row_index,枚举中的 row_value(data_column):
这里有一个例子来理解它:
df = pd.DataFrame({'A':[1,2,3,4],'B':[5,6,7,8]})
print('Before change')
print(df)
for i,j in enumerate(df['B']):
if j == 6:
df.loc[i,'B'] = 4
print('Afetr Change')
print(df)
变量row_value
是原始 df 中行/列对的单个值,它不引用 df position。正如另一个答案指出的那样,您需要找到该值才能更改 df。
此外,我想提一下,第二个row_value
替换可以简单地replace
为row_value = float_format
。 另外,我与您分享了一种使用apply
的方法,我认为它更简洁,您可能会发现它很有用:
df = pd.DataFrame(
{
'c1': ['100,12', 1.230, '30.000,4'],
'c2': ['5.367,46', '10', 7.3],
'c3': ['a', 'b', 'c']
}
)
cols = ['c1', 'c2']
for col in cols:
df[col] = df[col].apply(
lambda x: float(x.replace('.','').replace(',','.')) if type(x) == str else x
)
这导致:
c1 c2 c3
0 100.12 5367.46 a
1 1.23 10.00 b
2 30000.40 7.30 c
c1 float64
c2 float64
c3 object
dtype: object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.