我有两个数据框,分别叫做Old和New。 Old有96行,New有48行。我想取一列Old,比如public static void main(String[] args) {
try{
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.navigate().to("https://www.amazon.in/");
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println("Number of links : " + links.size());
for(WebElement e : links) {
String linkText = e.getAttribute("href");
System.out.println("Link -->>" +linkText);
if(linkText!=null && !linkText.isEmpty()) {
HttpPost post = new HttpPost(linkText);
HttpClient client = HttpClientBuilder.create().build();
HttpResponse res = client.execute(post);
String s = res.getStatusLine().toString();
if(s.contains("404")) {
System.out.println("Navigated");
//your code to handle logic
} else {
//your code to handle logic with other response code
}
}
}
} catch (Exception e) {
System.out.println(e.getStackTrace());
}
}
并将其拆分为New列中的两列,比如['Values']
和['First']
。因此,对于一个简单的例子,有6行开始;从:
['Second']
到
Values
1 10
2 20
3 30
4 40
5 50
6 60
我认为这应该很简单,但我无法做到,因为索引需要改变。我只是想复制值,如你所见。
这怎么做得最好?
答案 0 :(得分:1)
您可以使用重塑:
pd.DataFrame(df.values.reshape(-1,2, order='F'), columns=['First','Second'])
Out[12]:
array([[10, 40],
[20, 50],
[30, 60]], dtype=int64)
答案 1 :(得分:1)
使用numpy中的split
,您可以分为两种或其他尺寸,并将它们与hstack
合并,以形成新的dataframe
:
import numpy as np
import pandas as pd
df = pd.DataFrame({'Values': {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}})
print(df)
输入数据帧:
Values
1 10
2 20
3 30
4 40
5 50
6 60
splits = np.split(df, 2)
result_df = pd.DataFrame(np.hstack(splits), columns=['First', 'Second'])
print(result_df)
结果:
First Second
0 10 40
1 20 50
2 30 60
不使用中间splits
变量,您可以尝试:
result_df = pd.DataFrame(np.hstack(np.split(df, 2)), columns=['First', 'Second'])