小编EMC*_*EMC的帖子

将Pandas数据框列值合并到新列中

我正在和Pandas一起工作,我有一个数据框,我们可以在其中填充以下三个值中的一个:

ID_1    ID_2    ID_3
abc     NaN     NaN
NaN     def     NaN
NaN     NaN     ghi
NaN     NaN     jkl
NaN     mno     NaN
pqr     NaN     NaN
Run Code Online (Sandbox Code Playgroud)

我的目标是将这三列组合成我数据框中的新列:

ID_1    ID_2    ID_3  Combined_ID
abc     NaN     NaN    abc
NaN     def     NaN    def
NaN     NaN     ghi    ghi
NaN     NaN     jkl    jkl
NaN     mno     NaN    mno
pqr     NaN     NaN    pqr
Run Code Online (Sandbox Code Playgroud)

理想情况下,它只会找到第1列到第3列中存在的任何非空值,但我也可以连接,因为我们应该只为每行填充三个中的一个.谢谢.

df_note = pd.read_csv("NoteIds.csv")
df_note['Combined_ID'] = # ID_1 + ID_2 + ID_3
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

12
推荐指数
2
解决办法
8320
查看次数

不区分大小写的pandas dataframe.merge

我正在努力用最简单的方法在pandas中进行不区分大小写的合并.有没有办法在合并时做到这一点?我是否需要使用(?i)或带有ignorecase的正则表达式?在我的下面的代码片段中,我加入了一些国家,其中一个文件中可能是"美国"而另一个文件中的"美国",我只想将这个案例排除在外.谢谢!

import pandas as pd
import csv
import sys

env_path = sys.argv[1]
map_path = sys.argv[2]


df_address = pd.read_csv(env_path + "\\address.csv")
df_CountryMapping = pd.read_csv(map_path + "\CountryMapping.csv")

df_merged = df_address.merge(df_CountryMapping, left_on="Country", right_on="NAME", how="left")

....
Run Code Online (Sandbox Code Playgroud)

python csv pandas

5
推荐指数
2
解决办法
1万
查看次数

将 .0 附加到数字的熊猫

我有一个关于熊猫的问题,我有点困惑。我有一个包含很多不需要计算的数值的文件。他们中的大多数人都很好,但我有一对夫妇在末尾附加了“.0”。

这是一个示例输入文件:

Id1         Id2      Age     Id3
"SN19602","1013743", "24", "23523"
"SN20077","2567897", "28", "24687"
Run Code Online (Sandbox Code Playgroud)

以及正在生成的输出:

Id1         Id2      Age     Id3
"SN19602","1013743.0", "24", "23523"
"SN20077","2567897.0", "28", "24687"
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么有些但不是所有的数值都附加了 .0,如果有什么办法可以防止它?当我使用 CSV 输出执行流程的下一步时,这是一个问题。

我试图将数据框和列本身转换为字符串,但没有产生影响。理想情况下,我不想列出要转换的每一列,因为 a 有非常多的列,并且必须手动检查输出文件以确定哪些列附加了 .0 并为其编码。任何建议表示赞赏。

import pandas as pd
import csv

df_inputFile = pd.read_csv("InputFile.csv")
df_mappingFile = pd.read_csv("MappingFile.csv")
df_merged = df_inputFile.merge(df_mappingFile, left_on="Id", right_on="Id", how="left")
#This isn't affecting the output
df_merged.astype(str)
df_merged.to_csv("Output.csv", index=False, quoting=csv.QUOTE_ALL)
Run Code Online (Sandbox Code Playgroud)

python csv pandas

2
推荐指数
2
解决办法
2738
查看次数

标签 统计

pandas ×3

python ×3

csv ×2

dataframe ×1