我想用另一个DF的行中的名称替换DF的一些列名称
import pandas as pd
df1=pd.DataFrame({'T2': [2,3],
'T1': [4,5],
'HO': [2,7]
})
df2=pd.DataFrame({'T1' : ['cat'],
'T2' :['dog']
})
如何用df2中的“狗”和“猫”替换df1中的“T1”和“T2”?
您可以使用映射:
def mapping(x):
return df2[x] if x in df2 else x
df1.columns=list(map(mapping, list(df1.columns)))
print(df1)
dog cat HO
0 2 4 2
1 3 5 7
您可以将df2
转换为使用df.to_dict将列名映射到行值的判决
,然后使用判决
使用df.rename.重命名列。
In [4]: df1
Out[4]:
HO T1 T2
0 2 4 2
1 7 5 3
In [5]: df2
Out[5]:
T1 T2
0 cat dog
In [6]: df2.to_dict(orient="records")
Out[6]: [{'T1': 'cat', 'T2': 'dog'}]
In [7]: df1.rename(columns=df2.to_dict(orient="records")[0])
Out[7]:
HO cat dog
0 2 4 2
1 7 5 3
您也可以使用更简单的方法
print df2.iloc[0]
T1 cat
T2 dog
Name: 0, dtype: object
Solution:
df1 = df1.rename(columns=df2.iloc[0])
print df1
HO cat dog
0 2 4 2
1 7 5 3
我有一个excel文件,看起来像这样: Header3包含如下所示的JSON字符串 我想解析JSON Header3列,并为每个键创建一个列,其中键的名称附加有键2的值,整个文件中的键始终相同。 结束数据帧应如下所示: 实例: 需要成为: 在进入花哨的东西之前,我试图至少规范化数据,但我得到了一个空序列。
我有这个df称为职位: 我有一份清单: 我正在尝试在股票行情器上创建一个新的DF排序。如果代码相同,那么这些值将进入df,另一个值将进入另一个。 我刚刚尝试过如何做到这一点,我不确定我是否走上了正确的道路。。 这怎么可能呢?在新的DF中,我想带上所有的专栏。 谢谢:)
感兴趣的是在同一pyspark数据帧中将列表的这一列拆分为多列的scala-spark实现 给定该数据帧: 我想要一个新的数据帧,它包含分解值并映射到我提供的列名称: 尝试: 但它的格式错误,我不知道如何映射到我的 colNames 列表: 在上面的链接中,python的解决方案是使用列表理解: 但它没有显示如何使用提供的列名列表,因为列名只是列的索引。
例如,假设我有一个 我有条件: 我如何测试条件并为我的df的每一行返回一个结果,如下面所示? 编辑:理想情况下,我想创建一个,允许我 并计算所有行的数据。因为在实际数据中,有100个条件语句和10个列。
我有两个不同形状的df。一个包含单词及其频率,另一个包含单词及其引理。 第一个df总是将一个单词映射到一个频率,第二个df将许多单词映射到一个引理(多次)。例如: DF1: 和df2: 我想将引理信息添加到,通过搜索的每个单词,将其与中的单词进行比较,并从中提取引理信息以将其添加回。 对于df1中的值是否始终相同,有一些有用的答案,但由于我想对每一行中包含不同单词的行执行此操作,因此我不确定如何继
我有以下,其值是字典: 我希望获得所需的输出: 我怎样才能把字典分成单独的列呢? 我见过使用函数拆分字符串的列,但不确定如何将其应用于字典作为值的情况。