Python 在附加两个或多个数据集时,如何添加数据集标识符(如id列)?
我有多个csv格式的数据集,我想通过附加导入。每个数据集具有相同的列名称(字段),但值和长度不同 例如:Python 在附加两个或多个数据集时,如何添加数据集标识符(如id列)?,python,pandas,Python,Pandas,我有多个csv格式的数据集,我想通过附加导入。每个数据集具有相同的列名称(字段),但值和长度不同 例如: df1 date name surname age address ... df2 date name surname age address ... 我想要 df=df1+df2 date name surname age address dataset (df1) 1
df1
date name surname age address
...
df2
date name surname age address
...
我想要
df=df1+df2
date name surname age address dataset
(df1) 1
... 1
(df2) 2
... 2
i、 e.我想添加一个新列,它是数据集的标识符(字段来自哪里,如果来自数据集1或数据集2)
我怎么做?这就是你要找的吗 注意:示例的列数比您的少,但方法是相同的
将熊猫作为pd导入
df1=pd.DataFrame({
'name':[f'name{i}'表示范围(5)中的i],
“年龄”:范围(10,15)
})
df2=pd.DataFrame({
'name':[f'name{i}'表示范围(20,22)中的i],
“年龄”:范围(20,22)
})
组合=局部浓度([df1,df2])
组合['dataset']=[1]*len(df1)+[2]*len(df2)
打印(合并)
输出
name age dataset
0 Name0 10 1
1 Name1 11 1
2 Name2 12 1
3 Name3 13 1
4 Name4 14 1
0 Name20 20 2
1 Name21 21 2
这就是你要找的吗 注意:示例的列数比您的少,但方法是相同的
将熊猫作为pd导入
df1=pd.DataFrame({
'name':[f'name{i}'表示范围(5)中的i],
“年龄”:范围(10,15)
})
df2=pd.DataFrame({
'name':[f'name{i}'表示范围(20,22)中的i],
“年龄”:范围(20,22)
})
组合=局部浓度([df1,df2])
组合['dataset']=[1]*len(df1)+[2]*len(df2)
打印(合并)
输出
name age dataset
0 Name0 10 1
1 Name1 11 1
2 Name2 12 1
3 Name3 13 1
4 Name4 14 1
0 Name20 20 2
1 Name21 21 2
在Spark with scala中,我会这样做: 导入org.apache.spark.sql.functions_
val df1 = sparkSession.read
.option("inferSchema", "true")
.json("/home/shredder/Desktop/data1.json")
val df2 = sparkSession.read
.option("inferSchema", "true")
.json("/home/shredder/Desktop/data2.json")
val df1New = df1.withColumn("dataset",lit(1))
val df2New = df2.withColumn("dataset",lit(2))
val df3 = df1New.union(df2New)
df3.show()
在Spark with scala中,我会这样做: 导入org.apache.spark.sql.functions_
val df1 = sparkSession.read
.option("inferSchema", "true")
.json("/home/shredder/Desktop/data1.json")
val df2 = sparkSession.read
.option("inferSchema", "true")
.json("/home/shredder/Desktop/data2.json")
val df1New = df1.withColumn("dataset",lit(1))
val df2New = df2.withColumn("dataset",lit(2))
val df3 = df1New.union(df2New)
df3.show()
我们在
concat
combined = pd.concat([df1, df2],keys=[1,2]).reset_index(level=1)
我们在
concat
combined = pd.concat([df1, df2],keys=[1,2]).reset_index(level=1)
请显示您已尝试的内容(代码)?如何将这些数据帧附加在一起?@Shubham Sharma,附加数据帧的代码是concat(如下面的答案所示)。我不知道的是如何添加一个新列来标记数据集中的行请显示您尝试过的内容(代码)?如何将这些数据帧附加在一起?@Shubham Sharma,附加数据帧的代码是concat(如下面的答案所示)。我不知道的是如何添加一个新的列来标记数据集中的行,这就是我要寻找的。谢谢你@Balaji AmbreshYes,这就是我要找的。谢谢你@Balaji Ambresh