【发布时间】:2017-10-20 13:57:02
【问题描述】:
我有一个 CSV 文件包含以下数据的场景:
Host, Time Up, Time OK
server1.test.com:1717,100.00% ,100.00%
server2.test.com:1717,100.00% ,100.00%
我正在尝试比较所有行中的列值:
- 如果
col1 <= col2那么它应该在一个新的col3中打印col1的值 - 如果
col1 > col2则在col3中打印col2值。
例子:
Time Up(col1), Time OK(col2), Total(col3)
100% 100% 100%
100% 95% 95%
95% 100% 95%
我通过互联网搜索并找不到任何案例。有什么方法可以实现吗?
编辑2: 代码-
import pandas as pd
df = pd.read_csv('3.csv',skipfooter=1)
df2 = pd.read_csv('4.csv',skipfooter=1)
combined = pd.merge(df[['Host',' Time Up']],df2[['Host',' Time OK']], on='Host')
combined[' Time OK'] = combined[' Time OK'].apply(lambda x: x.split('(')[0])
combined[' Time Up'] = combined[' Time Up'].apply(lambda x: x.split('(')[0])
combined.to_csv('combined.csv',index=False)
df =pd.read_csv('combined.csv', skipfooter=1)
col1 = df[' Time Up']
col2 = df[' Time OK']
df['Total'] = col1.where(col1 <= col2, col2)
df.to_csv('combined.csv',index=False)
【问题讨论】:
-
我在这里看不到重复
标签: python python-2.7 python-3.x pandas csv