我有一个Dataframe
df = pd.DataFrame({'taskId':['A;B','B;C','D;E','A;C']})
我想以";"提取每一个第一个元素
df = pd.DataFrame({'taskId':['A;B','B;C','D;E','A;C']})
df['get']=None
for index,row in df.iterrows():
list10=row['taskId'].split(";")
list20=list10[0]
row['get']= ''.join(list20)
print(df)
我尝试以上的写法,但是print出来 join是无值
应该怎么写可以达到我的目的
这段代码的作用是:
但是,这段代码存在一个问题:通过使用 row['get'] = ... 的方式更新 DataFrame 中的数据是无效的,因为它只是更改了变量 row 中的 get 值,而不是实际地更新 DataFrame 中的数据。要正确地更新 DataFrame,请使用 .loc 方法:
df.loc[index, 'get'] = ''.join(list20)
经过这样的修改,代码就可以正确执行并且将新的 'get' 列更新到原始的 DataFrame 中了。
迭代的时候没有更新每一行
import pandas as pd
df = pd.DataFrame({'taskId': ['A;B', 'B;C', 'D;E', 'A;C']})
df['get'] = None
for index, row in df.iterrows():
list10 = row['taskId'].split(";")
list20 = list10[0]
df.loc[index, 'get'] = ''.join(list20)
print(df)
不知道你这个问题是否已经解决, 如果还没有解决的话:答案:
要使用Python Dataframe进行join操作,可以使用merge方法。具体步骤如下:
示例代码如下:
import pandas as pd
# 读取需要合并的两个csv文件
df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
# 指定要合并的列
merge_col = 'id'
# 按照指定列进行合并操作
result = pd.merge(df1, df2, on=merge_col)
# 输出合并后的结果
print(result.head())
在实际合并数据集的时候,还需要注意以下几点:
希望以上内容可以帮助到你。如果还有问题,欢迎继续提问。