在Python中组合DataFame

在Python中组合DataFame,python,pandas,dataframe,Python,Pandas,Dataframe,我使用python在Pandas中创建了两个数据帧。我想把它们组合成一个数据框,包含Name、PrivateIP和Memory列 东道主(东道主): 内存单元df: 我还想去掉内存中的零列 这是我的密码 密码 如何将这些DatFame与以下列合并:名称、私有IP、内存??试试这个 重置内存的索引\u df数据帧 连接两个数据帧:hosts_df和memory_df pd.concat([hosts\u df,memory\u df.reset\u index(drop=True)],axis

我使用python在Pandas中创建了两个数据帧。我想把它们组合成一个数据框,包含
Name、PrivateIP
Memory

东道主(东道主): 内存单元df: 我还想去掉
内存中的零列

这是我的密码

密码 如何将这些DatFame与以下列合并:
名称、私有IP、内存?

试试这个

  • 重置
    内存的索引\u df
    数据帧
  • 连接两个数据帧:
    hosts_df
    memory_df
pd.concat([hosts\u df,memory\u df.reset\u index(drop=True)],axis=1)
代码:示例
#虚拟数据
hosts_df=pd.DataFrame({'Name':['bastion001','logicmonitor001','logicmonitor002'],
‘PrivateIP’:[“10.238.2.166”、“10.238.2.52”、“45.21.2.1”])
memory_df=pd.DataFrame({'memory':[1843260677061647904828]})
#Concat数据帧
df=pd.concat([hosts\u df,memory\u df.reset\u index(drop=True)],axis=1)
打印(df)
输出

Name私有IP内存
0堡垒001 10.238.2.166 1843260
1逻辑监视器001 10.238.2.52 1843260
2逻辑监视器002 45.21.2.1 1843260

@bluethundr这就是你要找的吗?是的,太完美了。谢谢我想问你一个问题。在无法登录且无法读取内存的服务器上,我在数据框中看到了这一点:
B-surveys-1c2e 10.238.2.39 NaN
。有没有办法用
NaN
替换其他值?例如
Null
?参见这两个:(1)和(2)。将它们组合起来以得到您想要的(如果我理解正确的话)。不要重复地将数据帧附加到彼此。将它们全部读入标准python列表,然后在末尾使用
pandas.concat
***Hosts Data Frame:
                      Name     PrivateIP
0               bastion001     10.238.2.166
1          logicmonitor001     10.238.2.52
2          logicmonitor002     45.21.2.1
***
***Memory Data Frame:
     Memory
0   1843260
0   7706164
0   7904828
***
    import os
    import pandas as pd
    filelist = os.listdir(text_path)
    # Read the servers into the DF
    hosts_list = os.path.join('..', '..', 'source_files', 'aws_hosts_list', 'aws_hosts_list.csv')
    text_path = "/home/tdun0002/stash/cloud_scripts/aws_scripts/output_files/memory_stats/text/"                
    hosts_df = pd.read_csv(hosts_list, skipinitialspace=True)
    hosts_df.columns = ["Name", "PrivateIP"]
    # Create the memory dataframe
    column_names = ["Memory"]
    memory_df = pd.DataFrame(columns=column_names)
    print(f"Reading text files into the Memory DF")
    for filename in filelist:
        print(f"Adding filename: {filename}")
        filename = text_path + filename
        temp_df = pd.read_csv(filename, delim_whitespace=True, names=column_names)
        memory_df = memory_df.append(temp_df)

    memory_df.Memory = memory_df.Memory.astype("int32")