在Python中组合DataFame
我使用python在Pandas中创建了两个数据帧。我想把它们组合成一个数据框,包含在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
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")